Ansible regex_search para filtrar datos

Ansible regex_search para filtrar datos

Hoy vamos a descubrir otro filtro de la herramienta Ansible que es el filtro de búsqueda de regex. Descubriremos cómo funciona la búsqueda de regex de Ansible. También exploraremos cómo la búsqueda de regex podría ser útil cuando se usa Ansible para encontrar una cadena o personaje a juego en el libro de jugadas Ansible.

En Ansible, reg-ex significa expresión regular y la búsqueda significa encontrar algo. Entonces, el filtro Regex_Search en Ansible es un tipo de exploración compleja que busca secuencias particulares en lugar de palabras y frases particulares. En lugar de crear muchas consultas de búsqueda literal, Regex hace posible encontrar una cadena de caracteres específica utilizando expresiones regulares. Para recuperar una secuencia particular, Regex funciona con una consulta de búsqueda y metacharacteres. Los elementos de construcción fundamentales de la expresión regular son metacharacteres. Encontrar algunas cadenas específicas como números de seguridad, números de licencia, direcciones de páginas web, direcciones de correo, números de registro, etc. que se pueden hacer en secuencias específicas se pueden hacer utilizando expresiones regulares.

Parámetros de regex_search

El parámetro es un tipo único de variable que emplea cualquier filtro, complemento, etc. para relacionarse con un bit de datos específico dado al filtro como valor de entrada en Ansible. Estos fragmentos de información indican los valores de los parámetros que se utilizarán para ejecutar o iniciar el filtro. A continuación se muestran los parámetros requeridos y opcionales que vamos a usar mientras usamos el filtro regex_serachh en el libro de jugadas Ansible.

Parámetros requeridos

Los siguientes son los parámetros que se requieren para que podamos encontrar el patrón en una cadena proporcionada.

Cadena de entrada: Tomaremos la entrada como una cadena para que podamos encontrar el patrón contra él.

Parámetros opcionales

Estos son los parámetros que usaremos si hay una necesidad mientras busca un patrón específico de la cadena de entrada.

Cadena regex: Regex es una expresión regular que contiene una cadena y especifica el patrón de coincidencia mientras se filtra.

Ignorar caso: Es un parámetro booleano. Si la cadena de expresión regular es verdadera, hará que el caso de búsqueda sea sensible y si no es verdadero, entonces se verá obligado a ser insensible al caso.

Multilínea: También es un parámetro booleano de búsqueda de regex en ansible. Si el escaneo es verdadero, la búsqueda sobre las terminaciones de línea y si es falsa, no buscará en la línea final.

Prerrequisitos de Filtro ansible regex_search

Si desea continuar con la búsqueda de regex, asumiremos que cumple con los siguientes requisitos previos que se dan a continuación:

  • Si bien queremos trabajar en la herramienta Ansible y queremos implementar el filtro de búsqueda de regex, requeriremos que deba tener un software relacionado con Ansible en su sistema. Para este tutorial, estamos usando Ansible 2.12 o una versión posterior.
  • Para ejecutar el filtro en servidores remotos, necesitamos un controlador y aquí Ansible Server es el controlador principal que configura el filtro Regex en el servidor de host local.

Vamos a profundizar en el filtro de búsqueda de regex y verificar cómo Ansible lo pone en vigencia utilizando algunas situaciones.

Ejemplo 01: coincidir con la cadena "dos" utilizando el filtro de búsqueda de regex

Aquí está el primer ejemplo en el que encontraremos las "dos cadenas del documento de muestra que ya se creó y contiene algunas cadenas en él. Cuando queremos ejecutar filtros en Ansible, necesitamos un libro de jugadas donde escribamos las tareas. Para hacerlo, la siguiente es la declaración que vamos a usar para crear el libro de jugadas en Ansible.

[root@maestro ansible]# nano regex_search.YML

Ahora, el libro de jugadas se inicia en la nueva terminal de Ansible. Comencemos a escribir las declaraciones requeridas en el libro de jugadas para que podamos ejecutar el filtro. Primero, escribiremos el nombre del dispositivo de host donde queremos configurar el filtro de búsqueda de regex. Estamos utilizando el host local para implementar el filtro. Solo obtendremos los datos requeridos del host local para que tengamos falso la opción de hecho de recopilación. En la primera tarea, obtuvimos algunos datos de la muestra.Documento TXT y luego lo almacenó en la variable "fuera" que se declaró utilizando la opción de registro del libro de jugadas. Luego, depuramos la tarea para poder buscar la cadena "dos" desde el contenido de la variable OUT y mostrarla en el terminal de la consola Ansible.

- Anfitriones: localhost
gather_facts: falso
tareas:
- Nombre: almacenar el contenido de la muestra.txt en la variable 'out'
Shell: muestra de gato.TXT
Registrarse: fuera
- Nombre: Muestre el contenido de la variable 'Out', que coincide con 'dos'
depurar:
Msg: "Out.stdout | regex_search ('.*dos.*', ignorecase = true) "

El siguiente paso es realizar la siguiente línea para obtener la frase que tiene la cadena "dos" en ella, después de escribir las tareas para el libro de jugadas.

[root@maestro ansible]# ansible-playbook regex_search.YML

La frase de la variable de salida que contiene la palabra "dos" se muestra en la salida utilizando el filtro de búsqueda de regex, que se ejecutó con éxito y se puede ver con la señal OK.

Ejemplo 2: Muestre la cadena "archivo" de la variable declarada en ansible

Ahora, vamos a implementar el segundo escenario en el que queremos encontrar los datos de la variable declarada en Ansible. Primero, volveremos a abrir el libro de jugadas:

[root@maestro ansible]# nano regex_searcg.YML

En este ejemplo, hemos declarado un nombre de variable "my_var" y luego hemos almacenado contenido en la variable. Ahora, queremos obtener la cadena específica de la variable para que tengamos que definir la tarea en el libro de jugadas. Como se muestra, también hemos utilizado parámetros opcionales del filtro regex_search en la opción de depuración al final del libro de jugadas. Estos parámetros son el parámetro multiline e ignorecase que contiene el valor "verdadero".

- Anfitriones: localhost
gather_facts: falso
Vars:
my_var: "Pruebe el primer archivo del primer archivo \ ntest \ ntest tercer archivo"
tareas:
- Nombre: Muestre el contenido de la variable 'my_var', coincide con 'archivo'
depurar:
msg: "my_var | regex_findall ('.*archivo.*', multiline = true, ignorecase = true) "

Ahora, ejecutaremos el libro de jugadas y mostraremos los resultados del libro de jugadas en la terminal:

[root@maestro ansible]# ansible-playbook regex_search.YML

Aquí están los resultados deseados a continuación:

Conclusión

Entramos en gran detalle sobre lo que es un filtro de búsqueda regex en Ansible y cómo usar el filtro en el libro de jugadas Ansible y lo que recibiremos a cambio. Para comprender correctamente el filtro de búsqueda de regex ansible, utilizamos algunos casos.