Ansible jinja2 filtres caractère " | " (pipe) ça veut dire quoi?
J'ai écrit une tâche comme ci-dessous, mais ne peut pas comprendre ce que '|'?
tasks:
- shell: /usr/bin/foo
register: result
ignore_errors: True
- debug: msg="it failed"
when: result|failed
- debug: msg="it changed"
when: result|changed
J'ai aussi trouvé quelques exemples sur le web, mais ne peut pas comprendre ce que '|'?
debug: msg={{ ipaddr |replace(",", ".") }}
Un exemple de plus:
- hosts: localhost
vars:
D:
1 : "one"
2 : "two"
tasks:
- debug: var=D
- debug: msg="D[1] is {{ D[1]|default ('undefined') }}"
Serait génial si quelqu'un peut expliquer en détails ou me diriger vers une URL?
Toute aide serait appréciée.
Grâce.
Avez-vous vérifié le jinja docs?
OriginalL'auteur Ram Meena | 2015-06-17
Vous devez vous connecter pour publier un commentaire.
Par le caractère pipe vous passez une valeur à un filtre. Il existe de nombreux Jinja 2 filtres mais Ansible apporte quelques filtres supplémentaires.
Le terme filtre pourrait être déroutant à la fois parce que tous les filtres fonctionnent très différemment. Certains par exemple de réduire un ensemble de résultats d'une table de hachage/tableau, certaines de modifier le contenu d'une chaîne, mais il y a des filtres, il suffit de retourner true ou false.
Une meilleure explication pourrait être que ceux sont des modificateurs et qu'ils peuvent faire n'importe quoi avec vos données passées. Vous pouvez même écrire vos propres filtres.
Filtres peuvent être enchaînés, le résultat le passage de la première filtre à la suivante et ainsi de suite. Il fonctionne exactement comme la tuyauterie de commandes dans un shell unix.
La
failed
filtre retournetrue
si le passé suite a échoué. Il vérifie simplement lafailed
propriété deresult
.La
changed
filtre est le même, mais vérifie si le passé suite a des changements. Il vérifie lachanged
propriété deresult
.ipaddr | replace(",", ".")
remplace toutes les occurrences de,
avec.
. Donc une valeur de127,0,0,1
sera transformé à127.0.0.1
.La
default
filtre vous permettra de définir une valeur par défaut si l'entrée est nulle, par exemple, une variable non définie.undefined_var | default("var was undefined")
-> Ce sera soit imprimer le contenu deundefined_var
ou la chaîne "var undefined". Dans votre exemple donné ci-dessus, vous sortie la valeur de la 2ème élément deD
(D[1]
) et si elle n'existe pas la piqûre "undefined" à la place.OriginalL'auteur udondan