Serie RHCE Ansible n.º 5: bucles Ansible

En ocasiones, es posible que desee repetir una tarea varias veces. Para examplees posible que desee crear varios usuarios, iniciar/detener varios servicios o cambiar la propiedad de varios archivos en sus hosts gestionados.

En este tutorial, aprenderá a utilizar bucles de Ansible para repetir una tarea varias veces sin tener que volver a escribir toda la tarea una y otra vez.

Antes de ver los bucles en Ansible, espero que haya seguido otros capítulos de esta serie de tutoriales de Ansible. Debe conocer el concepto de los libros de jugadas de Ansible, ser consciente de los comandos ad-hoc y conocer la terminología básica asociada con Ansible, como listas, diccionarios, etc.

También se agradece conocer los conceptos básicos de YAML.

Recorriendo listas

Ansible utiliza las palabras clave lazo para iterar sobre los elementos de una lista. Para demostrarlo, creemos un libro de jugadas muy simple llamado imprimir-lista.yml que le muestra cómo imprimir los elementos en una lista:

                      
                        [[email protected] plays]$ cat print-list.yml 
---
- name: print list
  hosts: node1
  vars:
    prime: [2,3,5,7,11]
  tasks:
    - name: Show first five prime numbers
      debug:
        msg: "{{ item }}"
      loop: "{{ prime }}"
                      
                    

Fíjate que uso el ít variable con bucles de Ansible. La tarea se ejecutaría cinco veces, lo que equivale al número de elementos en el principal lista.

En la primera carrera, el ít la variable se establecerá en el primer elemento de la matriz principal (2). En la segunda ejecución, la variable del elemento se establecerá en el segundo elemento de la matriz principal (3) y así sucesivamente.

Continúe y ejecute el libro de jugadas para ver todos los elementos del principal lista mostrada:

                      
                        [[email protected] plays]$ ansible-playbook print-list.yml 

PLAY [print list] **************************************************************

TASK [Gathering Facts] *********************************************************
ok: [node1]

TASK [Show first five prime numbers] *******************************************
ok: [node1] => (item=2) => {
    "msg": 2
}
ok: [node1] => (item=3) => {
    "msg": 3
}
ok: [node1] => (item=5) => {
    "msg": 5
}
ok: [node1] => (item=7) => {
    "msg": 7
}
ok: [node1] => (item=11) => {
    "msg": 11
}

PLAY RECAP *********************************************************************
node1                      : ok=2    changed=0    unreachable=0    failed=0
                      
                    

Ahora aplica bucles a una aplicación de la vida real. Para examplepuedes crear un agregar-usuarios.yml libro de jugadas que agregaría múltiples usuarios en todos los hosts en el servidores de base de datos grupo:

                      
                        [[email protected] plays]$ cat add-users.yml 
---
- name: Add multiple users
  hosts: dbservers
  vars:
    dbusers:
      - username: brad
        pass: pass1
      - username: david
        pass: pass2
      - username: jason
        pass: pass3
  tasks: 
    - name: Add users
      user:
        name: "{{ item.username }}"
        password: "{{ item.pass | password_hash('sha512') }}"
      loop: "{{ dbusers }}"
                      
                    

Primero creé un dbusers list que es básicamente una lista de hashes/diccionarios. Entonces usé el usuario módulo junto con un lazo para agregar los usuarios y establecer las contraseñas para todos los usuarios en el dbusers lista.

Note que también usé la notación punteada elemento.nombre de usuario y yo tem.pass para acceder a los valores de las claves dentro de los hashes/diccionarios del dbusers lista.

También vale la pena señalar que utilicé el contraseña_hash(‘sha512’) filtro para cifrar las contraseñas de los usuarios con el sha512 algoritmo hash como el usuario El módulo no permitiría establecer contraseñas de usuario sin cifrar.

Sugerencia para el examen RHCE: tendrá acceso a la página docs.ansible.com en su examen. Es un recurso muy valioso, especialmente en la sección “Preguntas frecuentes”; encontrará numerosas preguntas prácticas con respuestas y explicaciones.

Ahora vamos a ejecutar el agregar-usuarios.yml libro de jugadas:

Lea la historia completa

El resto del artículo está disponible solo para miembros de LHB. Puede registrarse ahora GRATIS para leer el resto de este artículo junto con el acceso a todas las publicaciones exclusivas para miembros. También se suscribe a nuestro boletín quincenal de Linux.

Suscribir

¿Ya tienes una cuenta?
Registrarse

Related Posts