Comment fonctionnent les filtres anibles?

Comment fonctionnent les filtres anibles?
L'une des principales parties de tout cadre ou logiciel de gestion est la façon dont il gère et traite les données. Compte tenu de la direction dans laquelle va le monde des technologies de l'information, il est juste de dire que les données sont King. D'énormes quantités de données sont générées quotidiennement pour être utilisées à différentes fins. Ainsi, la gestion et le traitement des données sont très importants.

Des logiciels tels qu'Ansible sont nécessaires pour gérer d'énormes quantités de données. En regardant les facilitations que ces types d'applications sont censés fournir, leurs capacités de traitement des données doivent être de premier ordre.

Chaque fois que nous devons traiter, formater ou manipuler des données dans ANSIBLE, nous utilisons des filtres. Il y a deux ensembles de filtres disponibles dans ANIBLE. Un ensemble est les filtres de modèle Jinja2 et l'autre ensemble est des filtres personnalisés fabriqués par les utilisateurs.

Cependant, en arrière-plan, tous les filtres sont dérivés du modèle Jinja2, qui fonctionne de manière à ce que les données entrées dans les filtres soient d'abord converties en expressions de modèle afin que les filtres puissent leur être appliqués.

Un autre point important à noter est que tous les filtres sont appliqués localement, ce qui signifie qu'aucun filtrage ne peut être effectué en utilisant des hôtes distants. Ainsi, toute la manipulation et le traitement se déroulent sur la machine de contrôle ANSIBLE.

Si vous cherchez à en savoir plus sur les filtres disponibles dans Ansible et comment ils sont utilisés, vous avez trouvé le bon article car nous vous guiderons sur le fonctionnement de ces filtres et comment vous pouvez créer des livres de jeu anibles pour traiter les données comme vous le souhaitez système de.

Comment fonctionnent les filtres?

Le travail derrière les filtres de données est simple. Vous donnez des filtres pré-développés certaines données ou informations en entrée; Le filtre analyse les données en fonction des commandes données dans le playbook et des conditions que vous avez définies. Une fois les données analysées, vous recevrez la sortie personnalisée que vous vouliez des données que vous avez.

Différents types de filtres effectuent différents types de filtrage sur les données. Comme mentionné précédemment, tous fonctionnent sur le modèle Jinja2 et il y a une liste de tous les filtres disponibles. Vous pouvez voir cette liste en cliquant sur ce lien.

Il existe de nombreux avantages à utiliser les filtres car ils améliorent considérablement les capacités d'Anable. Vous pouvez également utiliser des filtres pour le débogage dans certains cas.

Comment implémenter des filtres dans ANSIBLE?

La syntaxe de base de tout filtre anible est donnée par:

|

Un autre point important à noter est que la transformation des données en arrière-plan est effectuée en utilisant Python. Dans le cas où un certain type de modèle n'est pas disponible avec Python, le filtre peut ne pas vous donner la sortie correcte. Donc, vous devez être prudent en utilisant certains filtres.

Jusqu'à présent, vous avez appris les bases des filtres anibles. Pour clarifier toute autre question, jetons un coup d'œil à quelques exemples de filtrage et différents types de filtres.

Exemples

- Nom: générer plusieurs noms d'hôtes arbitraires
anable.construit.déboguer:
MSG: "['ABC', 'XYZ'] | Product (['com']) | map ('join', '.') | rejoindre(',') "

De plus, nous aimerions mentionner ici que pour exécuter un playbook, la commande suivante devrait être exécutée à l'aide du terminal Linux:

ANSIBLE-PLAYBOOK TESTBOOK.YML

Dans cet exemple, nous avons utilisé le filtre «produit». Le filtre de produit est utilisé pour implémenter la multiplication cartésienne. Le filtre «produit» est quelque peu un analogue d'utilisation pour les boucles dans les langages de programmation traditionnels. La sortie que vous recevrez en exécutant un tel code serait.

"msg": "ABC.com, xyz.com "

Voici comment vous pouvez obtenir des combinaisons pour des ensembles de deux numéros.

- Nom: Donnez-moi des combinaisons pour des ensembles de deux
anable.construit.déboguer:
MSG: "[10,20,30,40,50] | ANSIBLE.construit.combinaisons (2) | liste "

Nous avons utilisé le filtre «combinaison» pour obtenir des combinaisons de deux nombres à partir d'un ensemble donné. Les 2 spécifiés dans Brassets Demande de fabriquer des combinaisons de 2 et le mot-clé «liste» vous donnera la sortie sous la forme d'une liste.

- Nom: les plus grandes permutations (l'ordre est important)
anable.construit.déboguer:
msg: "[0,2,4,6,8] | anible.construit.Permutations | liste "
- Nom: permutations d'ensembles de trois
anable.construit.déboguer:
msg: "[1,3,5,7,9] | anible.construit.Permutations (3) | liste "

Il y a également la fourniture d'un filtre «permutation». Ce filtre nous donne des permutations d'un ensemble donné de variables ou de données. Dans l'exemple ci-dessus, nous recevrons les plus grandes permutations de l'ensemble de nombres pair et des permutations d'ensembles de trois des nombres impairs.

"['A', 'B', 'C'] | Random"

Cet exemple utilise le filtre «aléatoire» pour générer un nombre aléatoire à partir d'un ensemble donné de données.

51 | aléatoire (étape = 10)

Cet exemple a également utilisé le filtre «aléatoire» pour générer un nombre aléatoire entre 0 et 50. Nous avons également donné la condition que la taille de l'étape devrait être de 10, donc la sortie que vous obtiendrez serait un nombre qui est un multiple de 10.

['a', 'b', 'c', 'd', 'e'] | mélanger

Le filtre «Shuffle» peut être utilisé pour mélanger l'ensemble de données pour produire une sortie dans laquelle la donnée sera mélangée puis vous est montrée.

['Val': 1, 'Val': 2, 'Val': 3, 'Val': 4] | min (attribut = 'val')

Enfin, nous avons utilisé le filtre «min» qui comparera les deux numéros d'entrée que nous avons donnés en entrée et vous donnera le plus petit nombre en tant que sortie.

['Val': 1, 'Val': 2] | max (attribut = 'val')

De même, nous utilisons ici le filtre «Max» pour obtenir le nombre maximum d'un ensemble de données donné.

Donc, ce sont les exemples de certains des filtres disponibles dans ANIBLE. Il existe de nombreux autres filtres en utilisant que vous pouvez traiter et formater les données.

Conclusion

Dans cet article, nous avons examiné les filtres ANSIBLE. Nous avons établi pourquoi nous avons besoin de filtres dans l'analyse des données et examiné certains filtres fournis par le plug-in. Nous espérons que nous avons pu vous aider à comprendre pourquoi les filtres sont importants et surtout, vous comprenez maintenant comment vous pouvez les utiliser à votre avantage. N'hésitez pas à abandonner les questions dans la section des commentaires.