Ansible - 4.2 Ansible : Windows, inventaire dynamique et modules

Cette leçon aborde des sujets avancés d'Ansible. On voit comment préparer un serveur Windows comme cible, comment cibler des hôtes avec des motifs, et comment utiliser un inventaire dynamique. La leçon présente aussi les modules et le site Ansible Galaxy.

Préparer une cible Windows

La machine de contrôle doit être Linux, mais une cible peut être Windows. Ansible se connecte à une machine Windows avec WinRM, qui n'est pas forcément activé par défaut. Sur la machine de contrôle, installez le paquet pywinrm avec pip. Sur le serveur Windows, lancez ensuite le script PowerShell ConfigureRemotingForAnsible fourni par Ansible. Il faut parfois changer la politique d'exécution des scripts avant de le lancer.

pip install pywinrm

Cibler des hôtes avec des motifs

Dans un playbook, la directive hosts indique les cibles. On peut citer un groupe, plusieurs groupes séparés par des virgules, ou un motif. Un motif avec joker permet de cibler tous les hôtes dont le nom commence ou se termine d'une certaine façon. Des exclusions permettent aussi d'affiner les cibles.

Utiliser un inventaire statique ou dynamique

Un inventaire statique est un fichier que vous modifiez à la main. Un inventaire dynamique est un script Python qui fournit la liste des hôtes et de leurs groupes dans un format attendu. Il est indiqué avec le paramètre -i, comme le fichier statique. Des scripts existent déjà pour des fournisseurs comme AWS ou OpenStack.

ansible-playbook -i <fichier-inventaire> <playbook.yml>
ansible-playbook -i <script-inventaire.py> <playbook.yml>

En résumé

Ansible peut cibler une machine Windows via WinRM, après une préparation du serveur. Les hôtes se désignent par groupes et motifs. Un inventaire dynamique remplace la liste statique, et des modules personnalisés étendent les actions disponibles.

Points clés

  • Une cible Windows demande WinRM et la préparation du serveur.
  • La directive hosts désigne les groupes ou les motifs visés.
  • Un inventaire dynamique est un script qui fournit les hôtes.
  • Le paramètre -i indique le fichier ou le script d'inventaire.
  • Un module est un programme qui effectue une action précise.

Questions fréquentes

La machine de contrôle peut-elle être Windows ?

Non, la machine de contrôle doit être Linux. Une machine Windows peut en revanche être une cible.

Qu'est-ce qu'Ansible Galaxy ?

C'est un site gratuit pour télécharger, partager et écrire des programmes d'automatisation développés par la communauté, appelés rôles.

Quand utiliser un inventaire dynamique ?

Quand la liste des serveurs change souvent. Un inventaire statique devrait alors être modifié à la main à chaque changement.