Comment faire une instance if dans Jinja2

Comment faire une instance if dans Jinja2
Divers conditions pré-construites dans Jinja2 offrent un accès rapide aux méthodes avancées sur les documents Jinja. Le but de la mise en œuvre des conditions de Jinja2 dans ANIBLE est expliqué dans cet article, ainsi que ce qu'ils sont en général. Cet article a également une instance if détaillée pour l'une des conditions Jinja2 et ce qu'est le document Jinja2 Syntaxe et fonctionnalité. Nous allons également passer en revue un autre opérateur que les programmeurs ANSIBLIGNENT peuvent utiliser pour effectuer les stades IF.

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)%
Corps
% fin si %

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:

  • Pour effectuer les tâches dans ANSIBLE, nous devrions d'abord configurer l'outil ANSIBLE sur le système.
  • L'opération entière Jinja2 if-statement est gérée par le contrôleur ANSible de cette session, qui agit comme le contrôleur de domaine principal qui configure et maintient les conditions de Jinja2 sur la machine ciblée.
  • De plus, un serveur de ciblage est nécessaire lorsque le statement de Jinja2 est configuré. Le serveur distant dans cette instance est déterminé comme l'hôte local.

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.YML

Aprè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:
- hôte local
rassemble_facts: faux
Tâches:
- Nom: Vérifiez l'existence du fichier
stat: chemin =./héberger.YML
Enregistrement: Fileexists
- déboguer:
msg: "'le fichier existe' si les fichiers.stat.existe "
- Nom: Vérifiez si l'hôte.YML est accessible par l'utilisateur actuel
Shell: stat -c "% a" ./héberger.YML
Enregistrement: AccessPath
- déboguer:
msg: "'fichier accessible' if (AccessPath.stdout | int) < 660"

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.YML

Comme 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.