Ansible regex_search pour filtrer les données

Ansible regex_search pour filtrer les données

Aujourd'hui, nous allons découvrir un autre filtre de l'outil ANSIBLE qui est le filtre Regex Recherche. Nous découvrirons comment les fonctions de recherche regex d'ANSIBLE. Nous explorerons également comment Regex Search pourrait être utile lorsque vous utilisez ANSIBLE pour trouver une chaîne ou un personnage correspondant dans le manuel ANSIBLE.

Dans Ansible, Reg-EX signifie l'expression régulière et la recherche signifie pour trouver quelque chose. Ainsi, le filtre regex_search dans ANIBLE est une sorte de scan complexe qui cherche des séquences particulières plutôt que des mots et des phrases particuliers. Au lieu de créer de nombreuses requêtes de recherche littérales, Regex permet de trouver une chaîne de caractères spécifique en utilisant des expressions régulières. Pour récupérer une séquence particulière, Regex travaille avec une requête de recherche et des métacharacteurs. Les éléments de construction fondamentaux de l'expression régulière sont les métacharacteurs. Trouver des chaînes spécifiques comme les numéros de sécurité, les numéros de licence, les adresses Web, les adresses postales, les numéros d'enregistrement, etc.

Paramètres de regex_search

Le paramètre est un type de variable unique qui est utilisé par n'importe quel filtre, plugin, etc. pour se rapporter à un bit spécifique de données données au filtre comme valeur d'entrée dans ANIBLE. Ces morceaux d'information indiquent les valeurs des paramètres qui seront utilisés pour exécuter ou initier le filtre. Vous trouverez ci-dessous les paramètres requis et facultatifs que nous allons utiliser tout en utilisant le filtre Regex_Serachh dans le manuel ANSIBLE.

Paramètres requis

Voici les paramètres nécessaires afin que nous puissions trouver le modèle dans une chaîne fournie.

Chaîne d'entrée: Nous prendrons les commentaires en tant que chaîne afin que nous puissions trouver le modèle contre lui.

Paramètres facultatifs

Ce sont les paramètres que nous utiliserons s'il y a un besoin lors de la recherche d'un modèle spécifique à partir de la chaîne d'entrée.

Chaîne regex: Regex est une expression régulière qui contient une chaîne et spécifie le modèle de correspondance lors du filtrage.

Ignorecase: C'est un paramètre booléen. Si la chaîne d'expression régulière est vraie, elle rendra la recherche sensible au cas et si elle n'est pas vraie, elle sera forcée d'être insensible à la casse.

Multiligne: C'est aussi un paramètre booléen de la recherche regex dans ANSIBLE. Si le scan est vrai, la recherche sur les terminaisons de ligne et si elle est fausse, elle ne recherchera pas la fin de la ligne.

Prérequis du filtre ANSIBLE regex_search

Si vous souhaitez continuer dans la recherche Regex, alors nous supposerons que vous rencontrez les conditions préalables suivantes qui sont données ci-dessous:

  • Bien que nous voulons travailler dans l'outil ANSIBLE et que nous voulons implémenter le filtre de recherche Regex, nous devrons que vous deviez avoir un logiciel lié à l'annonce sur votre système. Pour ce tutoriel, nous utilisons ANSIBLE 2.12 ou une version ultérieure.
  • Pour exécuter le filtre sur les serveurs distants, nous avons besoin d'un contrôleur et ici ANSIBLE Server est le contrôleur principal qui configure le filtre regex dans le serveur hôte local.

Prévoyez-nous plus profondément dans le filtre de recherche regex et vérifions comment ANIBLE le met en vigueur en utilisant quelques situations.

Exemple 01: correspondant à la chaîne «deux» à l'aide du filtre RegEx Recherche

Voici le tout premier exemple où nous trouverons les «deux chaînes du document d'échantillon qui a déjà été créée et contient quelques chaînes dedans. Lorsque nous voulons exécuter des filtres dans ANSIBLE, nous avons besoin d'un livre de jeu où nous écrivons les tâches. Pour ce faire, ce qui suit est la déclaration que nous allons utiliser pour créer le playbook dans Ansible.

[root @ maître anible] # nano regex_search.YML

Maintenant, le Playbook est initié dans le nouveau terminal d'ANSIBLE. Commençons à écrire les déclarations requises dans le livre de jeu afin que nous puissions exécuter le filtre. Tout d'abord, nous rédigeons le nom du périphérique hôte où nous voulons configurer le filtre RegEx Recherche. Nous utilisons l'hôte local pour implémenter le filtre. Nous n'obtiendrons que les données requises de l'hôte local afin que nous ayons FAUX l'option de fait de rassemblement. Dans la première tâche, nous avons obtenu des données de l'échantillon.Document TXT puis le stocké dans la variable «Out» qui a été déclaré en utilisant l'option Register du Playbook. Ensuite, nous déboguons la tâche afin que nous puissions rechercher la chaîne «deux» à partir du contenu de la variable Out et l'afficher sur le terminal de la console ANSIBLE.

- hôtes: localhost
rassemble_facts: faux
Tâches:
- Nom: Stockez le contenu de l'échantillon.txt dans la variable «out»
Shell: échantillon de chat.SMS
Enregistrer:
- Nom: Affichez le contenu de la variable «Out», correspondant à «deux»
déboguer:
msg: "out.stdout | regex_search ('.*deux.* ', ignorecase = true) "

L'étape suivante consiste à effectuer la ligne suivante pour obtenir la phrase qui contient la chaîne «deux», après avoir écrit les tâches du livre de jeu.

[root @ maître anible] # anible-playbook regex_search.YML

La phrase de la variable Out qui contient le mot «deux» s'affiche dans la sortie en utilisant le filtre Regex Recherche, qui a été exécuté avec succès et peut être vu avec le signal OK.

Exemple 2: affichez la chaîne «fichier» de la variable déclarée dans ANIBLE

Maintenant, nous allons mettre en œuvre le 2ème scénario où nous voulons trouver les données de la variable déclarée dans Ansible. Tout d'abord, nous ouvrirons à nouveau le livre de jeu:

[root @ maître anible] # nano regex_searcg.YML

Dans cet exemple, nous avons déclaré un nom de variable «my_var», puis nous avons stocké du contenu dans la variable. Maintenant, nous voulons obtenir la chaîne spécifique de la variable, nous devons donc définir la tâche dans le livre de jeu. Comme indiqué, nous avons également utilisé des paramètres facultatifs du filtre regex_search dans l'option de débogage à la fin du livre de jeu. Ces paramètres sont des paramètres multilines et ignorécase qui contient la «vraie» valeur.

- hôtes: localhost
rassemble_facts: faux
VARS:
my_var: "tester le premier fichier \ ntest second fichier \ ntest troisième fichier"
Tâches:
- Nom: Affichez le contenu de la variable 'my_var', correspondant à 'fichier' '
déboguer:
msg: "my_var | regex_findall ('.*déposer.* ', multiline = true, ignorecase = true) "

Maintenant, nous allons exécuter le Playbook et présenter les résultats du Playbook dans le terminal:

[root @ maître anible] # anible-playbook regex_search.YML

Voici les résultats souhaités affichés ci-dessous:

Conclusion

Nous sommes allés dans les détails de ce qu'est un filtre de recherche regex dans ANSIBLE et comment utiliser le filtre dans le livre de jeu ANSIBLE et ce que nous recevrons en retour. Pour comprendre correctement le filtre de recherche regex ansible, nous avons utilisé quelques cas.