Dans ce tutoriel, je vais vous expliquer comment organiser vos hôtes dans un fichier d’inventaire au format YAML à la place du format du fichier d’origine avec Ansible.
Si vous découvrez ansible, je vous invite à lire ce tutoriel avant : Ansible : installation, configuration et utilisation avec Windows et Linux
Pour commencer voici notre fichier d’inventaire, pour faire « simple », le fichier ne sera constitué que de serveur Windows.
Dans le fichier, nous avons un groupe windows
qui contient la liste des serveurs puis la configuration de ce groupe avant les informations de connexions aux serveurs windows:var
.
Dans la maintenance au quotidien, je souhaite faire jouer 2 playbook :
- Un playbook qui va gérer les mises à jour Windows pour tous les hôtes. (playbook-wu-install-update.yml)
- Un playbook qui va gérer la rotation des logs IIS. (playbook-iis-logrotate.yml)
Pour répondre à cette solution, je vais créer un nouveau fichier d’inventaire au format YAML dans lequel, on va créer un sous-groupe (enfant) qui va contenir les serveurs IIS.
Dans un premier temps, nous allons transposer le fichier d’inventaire à l’identique au format YAML.
Voici le fichier d’inventaire :
Dans le fichier, nous avons créer un premier groupe : all
, qui contient tous les hôtes, par défaut lors de l’appel de ce fichier d’inventaire, le groupe all est appelé, le groupe vars
est aligné sur la partie hosts du all
.
Maintenant, on va créer un groupe enfant (iisservers) de all, qui va contenir les deux serveurs IIS.
Voici le fichier :
Le groupe enfant iisservers
est déclaré et on peut voir que celui-ci contient la déclaration des deux serveurs IIS qui se trouve dans all
Si vous avez regarder les deux playbooks au début de ce tutoriel, ils sont tous les deux appliqués aux groupes all.
Pour les mises à jour voici la commande :
ansible-playbook /path/file/playbook-wu-install-update.yml -i /path/file/hosts.yml -f 10
Ici l’appel du playbook se fait de façon « classique » en indiquant le chemin du fichier, le parametre –i
permet d’indiquer le fichier d’inventaire et le paramètre -f optionnel, permet d’indiquer le nombre d’exécution simultané (ici il n’a pas d’intérêt).
Maintenant, on va passer au playbook pour les serveurs IIS, on va ajouter en plus un paramètre -l
(limit) qui va prendre comme valeur le nom du groupe (iisservers)
Ce qui nous donne :
ansible-playbook /path/file/playbook-iis-logrotate.yml -i /path/file/hosts.yml -l iisservers -f 10
Le paramètre -l peut aussi prendre un hôte, si vous souhaitez appliquer le playbook à un seul hôte, ce qui peut être utile si vous utilisez un playbook pour planifier le redémarrage des serveurs.
Pour finir ce tutoriel, il est possible si cela est nécessaire, appliquer des variables au niveau de l’hôte, si par exemple celui-ci est hors domaine et que vous devez lui indiquer des identifiants différents.
Voici un exemple :
J’espère que ce tutoriel sur l’inventaire vous aura aider à y voir plus clair sur comment gérer vos hôtes avec Ansible.