Cómo usar etiquetas en Ansible

Cómo usar etiquetas en Ansible

Las obras, roles y tareas son la estructura ansible y esta estructura ansible contiene el atributo importante que se llama etiquetas en ansible. Cada vez que lanzamos un libro de jugadas en Ansible, puede emplear los comandos de etiquetas -tags y -skip para que podamos ejecutar solo una serie particular de tareas, obras de teatro y roles. Si tenemos un libro de jugadas que contiene tantas tareas, pero no queremos ejecutar todas las tareas del libro de jugadas, en lugar de ejecutar todo el libro de jugadas, simplemente ejecutaremos algunas tareas utilizando el comando de etiqueta en el libro de jugadas Ansible.

Vamos a discutir las etiquetas en este tema, que sirven como una de las facetas más importantes de Ansible. Intentaremos explicar qué etiquetas son y cómo funcionan las etiquetas en Ansible porque esta es una característica desconcertante de la plataforma Ansible.

Por ejemplo, un libro de jugadas puede contener tres responsabilidades: instalar el módulo, configurarlo y verificar el estado del módulo implementado, como si el servicio está en ejecución y accesible. Dado que simplemente necesitamos ver el estado de los módulos en algunas máquinas remotas, utilizamos etiquetas ansibles en esta situación en lugar de ejecutar todas las tareas en el libro de jugadas. Nos permite ejecutar una determinada operación exclusivamente, lo que nos permite reducir el tiempo de ejecución manteniendo todas las actividades relacionadas en un solo libro de jugadas.

Prerrequisitos de utilizar las etiquetas en Ansible Playbook

Para poner los ejemplos prácticos en el software Ansible, debemos cumplir con los siguientes requisitos.

Se debe requerir un servidor de control ansible para que realice cambios. Para utilizar el parámetro de etiqueta en el software Ansible, necesitamos que los hosts locales se comuniquen con ellos. En este caso, estamos utilizando el host local en toda la ejecución como un servidor remoto de destino. Crearemos libros de jugadas, ejecutaremos comandos de etiqueta Ansible y monitorearemos los resultados en hosts remotos desde el dispositivo Ansible-Controller.

Su objetivo es emplear diferentes escenarios para examinar algunas de las etiquetas ansibles para que el alumno pueda comprender fácilmente el concepto de etiquetas en un libro de jugadas Ansible.

Ejemplo 01: Acceder a una sola tarea en Ansible Playbook

Vamos a implementar en Ansible proporcionando múltiples tareas en el libro de jugadas y luego accederemos solo a una tarea utilizando las etiquetas en él. Para hacerlo, crearemos primero el libro de jugadas escribiendo el siguiente comando:

[root@maestro ansible]# nano ansible_tags.YML

Después de crear y lanzar el ansible_tags.Libro de jugadas YML. Ahora comenzaremos a escribir los comandos en el libro de jugadas. Primero, pasaremos los hosts proporcionados en el parámetro "Hosts" que usaremos "Localhost". Luego, escribiremos el valor "Falso" en el parámetro "RecopAn_Facts" para que no podamos obtener la información adicional sobre el Host Local cuando ejecutemos el libro de jugadas.

Después de eso, comenzaremos a enumerar las actividades bajo el parámetro "Tareas" uno por uno que queremos ejecutar. Determinaremos si el documento está en la máquina localhost en el primer proceso. Si está disponible, lo almacenaremos en el parámetro "Registro" y luego daremos el nombre único a la etiqueta para que cuando ejecutemos el libro de jugadas, sea fácil para nosotros acceder a la etiqueta. En la segunda tarea, haremos lo mismo que hemos hecho en la primera tarea, pero la etiqueta debe ser única y luego usaremos la opción de depuración para mostrar la tarea junto con el mensaje relacionado.

- Hospedadores:
- hostil
gather_facts: falso
tareas:
- Nombre: Verifique el archivo existencia x '
STAT: ruta =./anfitrión.YML
Registrarse: fileexists
Etiquetas: check_file
- depurar:
Msg: "'El archivo existe' si los fileexistas.estadística.existe el otro 'archivo no encontrado' "
Etiquetas: check_file
- Nombre: Verifique si el host.YML es accesible por el usuario actual
shell: stat -c "%a" ./anfitrión.YML
Registrarse: AccessPath
Etiquetas: check_access
- depurar:
msg: "'archivo accesible' if (accesspath.stdout | int) < 660 else 'File is not accessible' "
Etiquetas: check_access

Ahora, guardaremos el libro de jugadas y luego lo cerraremos. Queremos ejecutar el ansible_tags.Libro de jugadas YML, por lo que escribiremos el siguiente comando en el terminal Ansible para mostrar la salida a los usuarios.

[root@maestro ansible]# ansible-playbook ansible_tags.yml -tags check_file

Después de ejecutar el comando anterior, obtendremos la salida deseada a cambio. Como se muestra a continuación, solo se ejecuta una tarea y se muestra en la salida que es "Verificar la existencia del archivo".

Ejemplo 02: Ignore la etiqueta particular en Ansible Playbook

Aquí está el segundo ejemplo de la etiqueta Ansible donde vamos a la etiqueta "omitir". Depende de usted si desea ignorar todas las tareas o si desea ignorar una tarea particular del libro de jugadas en Ansible. Estamos utilizando la implementación del ejemplo 1 y luego simplemente omitiremos la tarea simplemente escribiendo la siguiente declaración en el terminal Ansible.

[root@maestro ansible]# ansible-playbook ansible_tags.YML--Skip-Tags check_file

Desde el comando anterior, simplemente hemos ignorado la tarea de "verificar la existencia del archivo". Ahora, solo se muestra una sola tarea en la salida que es "accesible de archivo" en Fuente Verde.

Ejemplo 03: Siempre siga ejecutando la tarea en Ansible Playbook

Vamos a implementar el tercer ejemplo basado en la etiqueta Ansible. En este ejemplo, usaremos la etiqueta "siempre", lo que significa que una etiqueta en particular siempre se ejecutará en el libro de jugadas Ansible. Para iniciar el libro de jugadas, use el siguiente comando:

[root@maestro ansible]# nano ansible_tags.YML

En el libro de jugadas, hemos creado múltiples tareas para ejecutarse, pero pasamos la etiqueta "siempre" en la última tarea que es "eliminar la contraseña del inventario". Los siguientes son el comando implementado en el libro de jugadas:

- Anfitriones: todos
gather_facts: falso
tareas:
- Nombre: Verifique la existencia del archivo
STAT: ruta =./anfitrión.YML
Registrarse: fileexists
Delegate_to: localhost
Etiquetas: check_file
- depurar:
Msg: "'El archivo existe' si los fileexistas.estadística.existe el otro 'archivo no encontrado' "
Etiquetas: check_file
- Nombre: Verifique si el host.YML es accesible por el usuario actual
shell: stat -c "%a" ./anfitrión.YML
Registrarse: AccessPath
Delegate_to: localhost
Etiquetas: check_access
- depurar:
msg: "'archivo accesible' if (accesspath.stdout | int) < 660 else 'File is not accessible' "
Etiquetas: check_access
- Nombre: Eliminar contraseña del inventario
LineInfile:
ruta: "Inventory_File"
regexp: '\ b item.*\b'
Estado: ausente
Delegate_to: localhost
convertirse en: falso
Etiquetas: siempre
with_items:
- ansible_password

Después de eso, crearemos el archivo de inventario para construir la conexión entre el controlador y el host remoto de destino. A continuación se muestra el comando:

[root@master ansible]# nano host.YML

Aquí está el archivo de inventario que contiene la información relacionada con el "linux_host" en Ansible.

Todo:
Hospedadores:
Linux_host:
ansible_host: 192.168.3.229
ansible_user: ansible
ansible_password: ******
ansible_connection: ssh
ansible_port: 22

Para obtener la salida deseada, ejecutaremos el siguiente comando en el terminal Ansible:

[root@maestro ansible]# ansible-playbook ansible_tags.YML -TAGS CHECK_FILE -I Host.YML

Conclusión

Las etiquetas en Ansible se han explicado en este artículo. Ahora entendemos la función de las etiquetas y los lugares en Ansible donde las aplicaremos. Para ayudar al alumno a comprender el concepto de etiquetas Ansible, hemos desarrollado una variedad de ejemplos.