Parmi les documents basés sur Python les plus efficaces et les plus connus figure Jinja2. Étant donné que cela utilise les mêmes langages de codage qu'Ansible, il est le plus largement utilisé par les utilisateurs anibles. C'est l'un des avantages pour les professionnels de l'informatique d'innombrables manières. Le document Jinja2 peut utiliser les structures conditionnelles anibles. Chaque fois qu'une condition booléenne fournie par le développeur se traduit par vrai ou fausse, des opérations ou des activités distinctes sont effectuées par des déclarations conditionnelles. À l'intérieur d'un playbook anible, basé sur les informations sur le serveur cible, une staté IF ou le résultat d'une action précédente, vous voudrez peut-être exécuter des actions alternatives ou avoir des objectifs différents. L'élément de structure fondamentale qui est utilisé pour évaluer les conditions est l'expression «if». Lors de l'évaluation de plusieurs conditions, l'expression «IF» est fréquemment utilisée pendant la combinaison avec les commandes «Elif» et «Else». Si un paramètre se produit et n'est pas nul ou si le paramètre a l'expression booléenne comme «vrai», une statement de l'IF conditionnelle avec un paramètre d'entrée se traduit par vrai. Dans une explication plus simple, l'expression «si» est utilisée pour restreindre l'exécution d'une collection de déclarations deux fois lorsqu'une condition particulière est remplie.
Syntaxe de la condition «IF» dans Jinja2
Jinja2, bien qu'il ne soit pas un langage de programmation, a une liste de phrases que vous devez utiliser pour mettre le «script» dans le manuel ANSIBLE. Ceux-ci sont simplement appelés collectivement syntaxes, et ils sont structurés par une série de principes de base qui permettent aux utilisateurs de communiquer leurs objectifs à la machine dans les termes qu'il peut comprendre.
Nous commençons par utiliser une attelle ouverte bouclée avec un indicateur de pourcentage. Le mot-clé «if», un mot réservé dans Jinja2, est utilisé. Après avoir écrit des conditions ou des expressions, nous fermons à nouveau la ligne de stades IF avec le pourcentage de symbole et fermons l'attelle bouclée. Ensuite, dans la ligne suivante, le corps de la condition «IF» est écrit. Enfin, la condition est fermée en écrivant «Endif» à l'intérieur des balises d'ouverture et de clôture de l'IF-Statement. Si la condition spécifiée renvoie vrai, les instructions incluses dans le bloc «IF» du code sont exécutées. Si la condition est fausse, il renvoie faux.
% if (condition)%Constructions préalables à l'utilisation de la mise en place de l'IF dans Jinja2
Pour configurer rapidement le statement de Jinja2 dans Ansible, nous considérons, pour le plaisir de cette session, que nous nous conformons aux critères suivants:
Commençons par une course d'entraînement rapide du Jinja2 IF-statement du Playbook ANSIBLE.
Exemple: implémentation de la mise en place de l'IF
Maintenant, en utilisant l'IF-statement de Jinja, qui est basé sur la programmation Python, nous créons l'exemple de base dans Ansible. Nous avons besoin d'un livre de jeu pour inclure toutes les commandes, tâches et conditionnels Jinja2 que nous devons mettre en œuvre dans Ansible. La commande de terminal anible que nous utilisons pour construire le playbook est affichée dans ce qui suit:
[root @ maître anible] # nano anible_if.YMLAprès être entré dans la commande susmentionnée, un livre de jeu avec le «.extension yml »et« si.YML ”Identifiant ANSIBL est produit et lancé instantanément dans un nouvel onglet de l'interface d'outil ANSIBLE. Maintenant que la mise en œuvre de l'IF conditionnelle est mise en œuvre, commençons à créer les commandes nécessaires. Pour implémenter le statement IF dans le périphérique hôte distant, nous spécifions d'abord l'hôte distant cible dans le playbook. Nous fournissons l'hôte local tout au long de cette situation. La collecte d'informations dans l'option ANSIBLE est utilisée pour recevoir les données sur l'hôte local. Ainsi, si la vraie valeur booléenne est transmise à l'option, nous obtenons toutes les informations pertinentes pour l'hôte local. Cependant, nous fournissons une fausse valeur booléenne si tout ce qui apparaît dans le terminal de sortie est le nom de l'hôte distant et non d'autres informations sur l'hôte local lorsque le livre de jeu est exécuté. Après avoir donné les informations pertinentes à l'hôte local, nous définissons ensuite les opérations que nous aimons accomplir dans le livre de jeu If-Statement.
Tout d'abord, nous définissons la tâche dans laquelle nous voulons vérifier la disponibilité du document dans ANSIBLE. Ensuite, nous passons le chemin du document et l'enregistrons. Ensuite, nous exécutons et imprimons les résultats en utilisant l'option de débogage. Ensuite, nous utilisons le statement IF pour vérifier si le fichier est disponible ou non. Dans la tâche suivante, nous vérifions si «l'hôte.yml »est accessible par le contrôleur ANSIBLE actuel ou non. Donc, nous utilisons l'option Shell pour déclarer le chemin de la «hôte.Document YML "ANS via la variable de registre où nous passons l'accès à" l'hôte.Document YML. Ensuite, nous utilisons le statement if pour vérifier la condition «IF».
- Hôtes:Ensuite, nous exécutons le playbook dans ANIBLE. Nous écrivons la commande suivante pour obtenir les résultats souhaités:
[root @ maître anible] # anible-playbook anible_if.yml -i hôte.YMLComme vous pouvez le voir, le statement si conditionnel est exécuté avec succès. Dans la première tâche, «l'hôte.Le document YML »existe dans ANSIBLE, et nous avons réussi à accéder à" l'hôte.fichier yml ”.
Conclusion
Nous avons utilisé l'une des conditions de Jinja2 dans ANIBLE qui est la stades if. Nous avons discuté du style d'écriture du statement IF dans Jinja2 et avons appris les exigences qui doivent être configurées dans l'hôte de contrôle et les appareils hôtes distants. Nous avons mis en œuvre un exemple de la stades de Jinja2 dans ANSIBLE afin que nous puissions facilement configurer l'instruction.