ANSIBLE quand on conditionne

ANSIBLE quand on conditionne
ANSIBLE prend en charge les évaluations conditionnelles avant d'exécuter une tâche spécifique sur les hôtes cibles. Si la condition définie est vraie, ANSIBLE ira de l'avant et effectuera la tâche. Si la condition n'est pas vraie (non satisfaite), ANIBLE sautera la tâche spécifiée.

Pour mettre en œuvre des conditions dans ANSIBLE, nous utilisons le Lorsque le mot-clé. Le mot-clé prend des expressions booléennes sur la base d'une valeur ou d'une variable à partir de tâches ou de faits précédents recueillis auprès des hôtes distants.

Ce guide vous apprendra à mettre en œuvre des conditions dans des manuels ANSIBLE en utilisant le mot-clé quand.

ANSIBLE Quand les conditions: utilisation de base

Le mot-clé quand prend une syntaxe simple:

Quand: (condition booléenne)

Assurez-vous de passer une condition qui évalue à des.

Par exemple:

Quand: ANSIBLE_PKG_MGR == "Yum"
Quand: ANSIBLE_USER_SHELL "==" / bin / bash "

Si vous souhaitez combiner plusieurs conditions, vous pouvez utiliser des opérateurs logiques tels que et, ou non.

Quand: (condition1) et (condition2)
Quand: (condition1) ou (condition2)

Pour comprendre comment utiliser le mot-clé ANSIBLE, nous utiliserons des exemples pratiques.

Exemple 1

Le premier exemple créera un utilisateur si l'utilisateur spécifié n'existe pas sur l'hôte distant.

---
- hôtes: tout
rassemble_facts: non
devenir vrai
Tâches:
- Nom: CheckifDirectoryExist
STAT:
Chemin: / Home / Ubuntu
Registre: Dir
- Nom: CreateFileIfDirectoryExists
déposer:
chemin: / home / ubuntu / fichier.SMS
État: toucher
Quand: dir.stat.existant

L'exemple ci-dessus commence par vérifier si le répertoire domestique de l'utilisateur Ubuntu est disponible. Nous utilisons ensuite la condition quand pour créer un fichier texte si le répertoire est disponible.

Exemple 2

L'exemple suivant arrête tous les hôtes distants Ubuntu en utilisant une condition.

---
- hôtes: tout
rassemble_facts: oui
devenir vrai
Tâches:
- Nom: Shutdownubunservers
commande: / sbin / shutdown-tnow
Quand: ANSIBLE_FACTS ['OS_FAMILY'] == "Ubuntu"

Dans l'exemple ci-dessus, nous utilisons des faits rassemblés pour évaluer si les serveurs sont de la famille Ubuntu. Si c'est vrai, fermez les serveurs.

Exemple 3

Dans l'exemple ci-dessous, nous combinons deux conditions qui utilisent un et opérateur.

---
- hôtes: tout
rassemble_facts: oui
devenir vrai
Tâches:
- Nom: installapacheserver
anable.construit.emballer:
Nom: httpd
État: dernier
Quand: (anible_facts ['os_family'] == "Debian") et
(ANSIBLE_FACTS ['ANSIBLE_DISTRIBUTION_MAJOR_VERION'] == 10)

L'exemple ci-dessus vérifie si les hôtes sont des hôtes debian et si la version de distribution est égale à Debian 10.

Exemple 4

Nous installons le serveur Web Apache dans le livre de jeu ci-dessous si la famille d'accueil est soit un hôte Debian ou Ubuntu.

Le Playbook utilise un logique ou un opérateur.

---
- hôtes: tout
rassemble_facts: oui
devenir vrai
Tâches:
- Nom: installapacheserver
anable.construit.emballer:
Nom: httpd
État: dernier
Quand: (anible_facts ['os_family'] == "Debian") ou
(ANSIBLE_FACTS ['OS_FAMILY'] == "Ubuntu")

Exemple 5

Considérez le playbook ci-dessous qui met à jour le serveur Nginx vers la dernière version en utilisant l'opérateur non.

---
- hôtes: tout
- shell: / sbin / nginx-v2> & 1
Registre: version
rassemble_facts: oui
devenir vrai

Tâches:
- Nom: installapacheserver
anable.construit.emballer:
Nom: nginx
État: dernier
Quand: ('"nginx / 1.19.0 "Notinversion.stdout ')

Si la sortie du serveur Nginx n'est pas la version actuelle, installez la version actuelle du package.

Conclusion

Dans ce guide, nous avons discuté de la façon de travailler avec des conditions dans ANSIBLE en utilisant le mot-clé quand.

Merci pour la lecture!