Ansible lui-même est écrit en Python et a une courbe d'apprentissage assez minimale. Ansible suit une procédure de configuration simple et ne dépend d'aucun logiciel, serveur ou démon client supplémentaire. Il gère les nœuds via SSH et est parallèle par défaut.
Dans ce guide, nous allons apprendre à installer et configurer Ansible sur Rocky Linux/CentOS 8.
Contenu associé
- Comment installer Python 2 et Python 3 sur Rocky Linux/Centos 8
- Comment installer Python 2 et Python 3 sur Fedora 35
- Comment installer et configurer Ansible sur Fedora 35
Prérequis
Pour suivre, assurez-vous d'avoir :
- Un serveur Rocky Linux/Centos 8 à jour
- Accès à Internet
- Connaissance du terminal Linux
Table des matières
- Assurez-vous que les packages du système d'exploitation sont à jour
- Installation de Python sur le serveur Rocky Linux/Centos 8
- Installer Ansible
- Tester l'installation d'Ansible
1. Assurez-vous que les packages du système d'exploitation sont à jour
Avant de continuer, il est toujours recommandé de mettre à jour le système et les packages installés.
Utilisez cette commande pour vous assurer que les packages système sont à jour :
sudo dnf -y update
2. Installation de Python sur le serveur Rocky Linux/Centos 8
Ansible est écrit en Python. Puisque les programmes python sont interprétés, ils ont toujours besoin du runtime python disponible pour leur exécution. Ansible n'est pas une exception, nous avons besoin que Python existe pour que nous puissions exécuter Ansible. Ansible fonctionne à la fois pour Python 2 et Python 3.
Utilisez ceci pour installer python3 sur le serveur :
sudo dnf install -y python3
Pip est un gestionnaire de packages pour Python. Nous pouvons utiliser pip pour gérer les packages python python et leurs dépendances. Nous aurons également besoin de pip pour installer ansible. Utilisez ces commandes pour installer pip :
sudo dnf -y install python3-pip
Il est également recommandé d'installer la dernière version de pip. Utilisez cette commande pour mettre à jour pip
sudo pip3 install --upgrade pip
3. Installation d'Ansible
Il existe deux façons d'installer Ansible dans notre système.
je. Installer ansible à l'aide du dépôt EPEL
Extra Packages for Enterprise Linux (ou EPEL) est un groupe d'intérêt spécial Fedora qui crée, maintient et gère un ensemble de packages supplémentaires de haute qualité pour Enterprise Linux. Ajoutez le référentiel EPEL à votre système Rocky Linux/Centos 8 à l'aide de cette commande :
sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
Nous pouvons ensuite installer ansible fourni dans le référentiel EPEL à l'aide de cette commande :
sudo dnf install ansible
Vérifiez la version d'Ansible installée sur votre système à l'aide de cette commande :
$ ansible --version
ansible 2.9.25
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/rocky/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.6/site-packages/ansible
executable location = /usr/bin/ansible
python version = 3.6.8 (default, Sep 21 2021, 18:40:00) [GCC 8.4.1 20200928 (Red Hat 8.4.1-1)]
Installer ansible en utilisant pip
Pip peut être utilisé pour installer ansible sur notre système.
pip3 install ansible --user
Comme j'ai déjà installé ansible dans mon cas, j'obtiens ceci
$ pip3 install ansible --user
Requirement already satisfied: ansible in /usr/lib/python3.6/site-packages (2.9.25)
Requirement already satisfied: jinja2 in /usr/lib/python3.6/site-packages (from ansible) (2.10.1)
Requirement already satisfied: PyYAML in /usr/lib64/python3.6/site-packages (from ansible) (3.12)
Requirement already satisfied: cryptography in /usr/lib64/python3.6/site-packages (from ansible) (3.2.1)
Requirement already satisfied: six>=1.4.1 in /usr/lib/python3.6/site-packages (from cryptography->ansible) (1.11.0)
Requirement already satisfied: cffi!=1.11.3,>=1.8 in /usr/lib64/python3.6/site-packages (from cryptography->ansible) (1.11.5)
Requirement already satisfied: MarkupSafe>=0.23 in /usr/lib64/python3.6/site-packages (from jinja2->ansible) (0.23)
Requirement already satisfied: pycparser in /usr/lib/python3.6/site-packages (from cffi!=1.11.3,>=1.8->cryptography->ansible) (2.14)
4. Tester l'installation d'Ansible
Ansible utilise ssh pour se connecter et exécuter des commandes sur le serveur distant. Donc, pour qu'Ansible fonctionne, nous devons nous assurer que nous pouvons nous connecter au serveur distant en utilisant ssh.
Pour effectuer un ssh sans mot de passe vers le serveur distant, utilisez cette commande pour générer la clé ssh :
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/rocky/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/rocky/.ssh/id_rsa.
Your public key has been saved in /home/rocky/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:vRdPlegZg17H4aMt30jQsiTYe0Jnh0zErhnSnuUQj3g [email protected]
The key's randomart image is:
+---[RSA 3072]----+
| oo . |
| o.ooo+ o|
| .o+*O=o*.|
| ooE**=B..|
| S++X+=o. |
| =+.=o..|
| . . o..|
| . |
| |
+----[SHA256]-----+
Copiez l'identifiant sur le serveur distant :
ssh-copy-id [email protected]
Créez maintenant un fichier d'inventaire :
vim hosts
Avec ce contenu :
10.2.40.182 ansible_ssh_user=fedora
Utilisez le module ping pour tester ansible :
$ ansible -i hosts 10.2.40.182 -m ping 10.2.40.182 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": false, "ping": "pong" }
Pour les commandes nécessitant sudo, transmettez l'option --ask-become-pass
. Cela demandera un mot de passe d'escalade de privilèges. Cela peut nécessiter l'installation de sshpass
programme.
$ ansible -i hosts 10.2.40.182 -m command -a "sudo yum install vim" --ask-become-pass
BECOME password:
[WARNING]: Consider using 'become', 'become_method', and 'become_user' rather than running sudo
10.2.40.182 | CHANGED | rc=0 >>
Last metadata expiration check: 0:23:39 ago on Wed 03 Nov 2021 08:35:14 PM UTC.
Package vim-enhanced-2:8.2.3512-1.fc34.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
Conclusion
Nous avons réussi à installer Ansible et à tester la connexion à un serveur distant dans ce guide.