Ansible est un outil d'automatisation gratuit et open-source sponsorisé par Red Hat. En utilisant ansible, nous pouvons gérer et configurer les systèmes Linux et Windows sans aucune installation d'agent sur eux. Il fonctionne essentiellement sur le protocole ssh et peut configurer plus de cent serveurs à la fois. Dans la terminologie ansible, le système sur lequel Ansible est installé est appelé hôte/nœud de contrôle et les systèmes gérés par ansible sont appelés hôtes gérés.
Dans cet article, nous expliquerons comment installer la dernière version d'Ansible sur Rocky Linux 8. Voici les détails de la configuration de mon laboratoire Ansible :
- Nœud de contrôle – 192.168.1.170 – Minimal Rocky Linux 8
- Hôte géré 1 – 192.168.1.121 – Ubuntu 20.04 LTS
- Hôte géré 2 – 192.168.1.122 – Rocky Linux 8
- utilisateur sysops avec droits d'administrateur
Installer Ansible via la commande dnf
1) Mettre à jour le système
Pour mettre à jour Rocky Linux 8, exécutez sous la commande dnf.
$ sudo dnf update -y
Une fois toutes les mises à jour installées, redémarrez votre système une fois.
$ sudo reboot
2) Configurer le référentiel EPEL
Le package Ansible et ses dépendances ne sont pas disponibles dans les référentiels de packages Rocky Linux 8 par défaut. Donc, pour installer ansible via dnf , nous devons d'abord configurer le référentiel EPEL.
Exécutez les commandes suivantes,
$ sudo dnf install -y epel-release
3) Installer Ansible avec la commande dnf
Nous sommes maintenant prêts à installer ansible avec la commande dnf, exécutez
$ sudo dnf install ansible -y
Une fois ansible et ses dépendances installés avec succès. Vérifiez sa version en exécutant la commande suivante,
$ ansible --version
Installation Ansible avec pip
Si vous recherchez la dernière version d'Ansible, installez ansible avec pip. Reportez-vous aux étapes suivantes.
Remarque :Au moment de la rédaction de cet article, ansible 4.3.0 est disponible
1) Installez toutes les mises à jour
Installez toutes les mises à jour disponibles à l'aide de la commande ci-dessous,
$ sudo dnf update -y
Redémarrez le système une fois après avoir installé les mises à jour,
$ reboot
2) Installez Python 3.8 et d'autres dépendances
Exécutez les commandes suivantes pour installer Python 3.8 et d'autres dépendances
$ sudo dnf module -y install python38 $ sudo alternatives --config python
Tapez 3 et appuyez sur Entrée
3) Installez la dernière version d'Ansible avec pip
Exécutez les commandes suivantes l'une après l'autre pour installer ansible,
$ sudo pip3 install setuptools-rust wheel $ sudo pip3 install --upgrade pip $ sudo python -m pip install ansible
La sortie de la commande python ci-dessus aimerait ci-dessous :
La sortie ci-dessus confirme qu'Ansible a été installé avec succès. Vérifions la version Ansible en utilisant la commande ansible suivante,
$ ansible --version
Vérifier l'installation d'Ansible
Chaque fois qu'Ansible est installé avec la commande dnf ou yum, son fichier de configuration par défaut "ansible.cfg" est créé automatiquement sous le dossier "/etc/ansible". Mais lorsque nous l'installons avec pip, nous devons créer son fichier de configuration manuellement.
Il est recommandé de créer ansible.cfg pour chaque projet. À des fins de démonstration, je crée un projet d'automatisation. Exécutez la commande mkdir suivante,
$ mkdir automation $ cd automation
Créez le fichier ansible.cfg avec le contenu suivant,
$ vi ansible.cfg [defaults] inventory = /home/sysops/auotmation/inventory remote_user = sysops host_key_checking = False [privilege_escalation] become=True become_method=sudo become_user=root become_ask_pass=False
Enregistrez et quittez le fichier.
Créez maintenant un fichier d'inventaire sous le projet d'automatisation (dossier) avec le contenu suivant.
$ vi inventory [prod] 192.168.1.121 [test] 192.168.1.122
Enregistrez et fermez le fichier.
Si vous avez remarqué attentivement le fichier ansible.cfg, j'ai utilisé remote_user comme "sysops". Créons donc des clés ssh pour l'utilisateur sysops et partageons-les entre les hôtes gérés.
$ ssh-keygen
Partagez les clés SSH à l'aide de la commande ssh-copy-id,
$ ssh-copy-id [email protected] $ ssh-copy-id [email protected]
Remarque :exécutez la commande suivante sur chaque hôte géré pour exécuter toutes les commandes sans demander de mot de passe,
# echo "sysops ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/sysops
Vérifiez la connectivité du nœud de contrôle aux hôtes gérés à l'aide du module ping,
$ cd automation/ $ ansible -i inventory all -m ping
Créons un exemple de playbook (web.yaml) pour installer nginx et php sur des hôtes gérés,
$ vi web.yaml --- - name: Play to Packages hosts: - test - prod tasks: - name: Install php and nginx package: name: - php - nginx state: present
Enregistrez et fermez le fichier.
Exécutez le playbook en utilisant sous la commande ansible-playbook,
$ ansible-playbook -i inventory web.yaml
La sortie de la commande ci-dessus aimerait ci-dessous
Excellent, la sortie ci-dessus confirme que le playbook a été exécuté avec succès et confirme également qu'Ansible est installé correctement.
C'est tout de ce post. Je pense que cet article vous aide à installer et à utiliser Ansible sur Rocky Linux 8. Veuillez partager vos commentaires et vos questions dans la section des commentaires ci-dessous.
Lecture recommandée : Comment utiliser les gestionnaires dans Ansible Playbook