ansible

Configuration minimale de Ansible et premiers tests en 2024

Configuration minimale de Ansible sur le node de contrôle. Ansible à besoin d'un répertoire de travail dédié dans lequel doivent se trouver un minimum de deux fichiers de configuration: ansible.cfg et un fichier inventaire..

Dernière modification le 15 février 2023 à 16:27 heures

Configuration minimale de Ansible sur le noeud de contrôle et premiers tests

configuration minimale de ansible

Dans le troisième article de cette série, nous allons voir comment installer une configuration minimale de Ansible sur le noeud de contrôle et effectuer les premiers tests

Pour rappel, mon environnement de test est constitué des 4 serveurs Ubuntu 22.04 suivants:

  • ubuntu-vbox0 192.168.0.125
  • ubuntu-vbox1 192.168.0.126
  • ubuntu-vbox2 192.168.0.127
  • ubuntu-vbox3 192.168.0.128

La configuration minimale de Ansible sur le node de contrôle, ici ubuntu-vbox0 (voir l’environnement de test), passe par la création d’un répertoire de travail dédié dans lequel doivent se trouver au minimum de deux fichiers de configuration.

  • répertoire de base /home/local-user/mon-ansible
  • un fichier de configuration ansible.cfg
  • un fichier inventaire des noeuds clients inventory

Étape 1: créer le répertoire de travail pour la configuration minimale de Ansible

Dans une fenêtre ‘command prompt’ connectez-vous au noeud de contrôle en SSH

ssh local-user@192.168.0.125

puis créez le répertoire de travail et rendez-vous dans ce répertoire

mkdir mon-ansible
cd mon-ansible

Étape 2: créer les fichiers de la configuration minimale de Ansible

Dans ce répertoire, avec nano ou tout autre éditeur, créez un fichier nommé ansible.cfg.

Dans ce fichier, entrez les lignes suivantes:

[defaults]
inventory = inventory
host_key_checking = False

La ligne inventory spécifie la location et le nom du fichier répertoire, ici le fichier inventory dans le répertoire de travail. Le host_key_checking est facultatif mais évite des complications avec les connexions SSH aux serveurs connus (knownhosts) spécialement lors de phases de mise-au-point/développement.

Créez alors le fichier inventaire inventory comme renseigné dans ansible.cfg et introduisez les infos concernant les noeuds clients.

[mes_vbox]
ubuntu-vbox1 ansible_host=192.168.0.126
ubuntu-vbox2 ansible_host=192.168.0.127
ubuntu-vbox3 ansible_host=192.168.0.128

[mes_vbox:vars]
ansible_user=local-user
ansible_ssh_pass=password
ansible_become_pass=password

[mes_vbox] regroupe l’ensemble des serveurs box clients et pour chacun d’eux nous spécifions l’adresse IP que Ansible devra utiliser lors de sa connexion SSH.

Comme l’utilisateur et le mot de passe sont les mêmes pour l’ensemble de ces serveurs, nous pouvons les regrouper dans un ensemble [mes-box:vars] (ansible-become-pass est le mot de passe que Ansible devra utiliser pour devenir root une fois connecté).

Étape 3: Premiers tests de cette configuration minimale de Ansible

Pour tester la bonne installation de Ansible, nous allons utiliser le module ping de Ansible d’abord sur le node lui-même

ansible localhost -m ping

et ensuite sur le groupe de serveurs box [mes_vbox] défini dans le fichier inventaire inventory.

ansible mes_vbox -m ping

voici ce que l’on obtient:

Étape suivante facultative: Tests complémentaires avec les commandes ad-hoc de Ansible

Ansible permet de l’exécution à distance de commandes sur des nodes clients définis dans le fichier inventaire inventory.

La forme générique de ces commandes est la suivante:

ansible <target> -a "command" -u <username>

Target est le nom du/des noeuds clients

  • All qui reprend tous les noeuds clients définis dans le fichier inventory
  • cela peut être un groupe de noeuds comme par exemple ‘mes_vbox
  • ce peut être un noeud en particulier ‘ubuntu-vbox3
  • ou plusieurs noeuds comme ‘ubuntu-vbox1 : ubuntu-vbox3
  • on peut également utiliser ‘localhost‘ pour tester la commande sur le noeud de contrôle lui-même, ici ‘ubuntu-vbox0

Nous pouvons, par exemple, exécuter les commandes suivantes:

ansible mes_vbox -a "date"

qui va nous donner la date sur chacun des noeuds du groupe mes_vbox

ansible mes_vbox -a "df -h"

qui va nous donner les occupations disques de ces noeuds

Voici ce que cela donne:

Si une commande nécessite des droits ‘root‘ pour s’exécuter (équivalent de sudo dans un ‘command prompt’), il suffit d’ajouter -b (pour become root’) à la fin de la commande. Dans notre configuration, aucun mot de passe ne sera demandé puisque nous l’avons défini dans notre fichier inventory.

Voici par exemple une commande qui nécessite des droits ‘root’ :

ansible ubuntu-vbox3 -a "apt update" -b

Étape suivante

Si vous avez suivi les étapes d’installation de cette configuration minimale de Ansible, vous êtes maintenant à même de vous lancer dans la rédaction de vos premiers playbooks Ansible.

Quelque liens utiles

Retour vers l’article “Débuter avec Ansible

Un commentaire

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *