Curso Ansible: Condicionales y bucles
Ansible es una herramienta de automatización de código abierto popular y potente que te permite definir tareas y procesos complejos usando YAML. Dos de los constructores más poderosos en Ansible son los condicionales y los bucles. En esta entrada del blog, exploraremos cómo usar condicionales con la cláusula “when” y cómo aprovechar los bucles con “loop” y “with_items”. Finalmente, veremos algunos ejemplos avanzados de condicionales y bucles en acción.
Uso de when para condicionales
En Ansible, los condicionales permiten controlar el flujo de ejecución en función de las variables, hechos y otros valores. La cláusula “when” es una forma sencilla de usar condicionales en tus tareas. La sintaxis básica es:
1 2 3 4 |
- name: Ejemplo de tarea con condicional when ansible.builtin.debug: msg: "La condición se cumplió" when: variable is defined |
En este ejemplo, la tarea se ejecutará solo si la variable “variable” está definida. Las posibilidades con “when” son casi infinitas, y puedes utilizar operadores lógicos como “and”, “or” e “in” para crear condiciones más complejas.
Bucles con loop y with_items
Los bucles son imprescindibles en la automatización, ya que te permiten ejecutar tareas en conjuntos de valores. En Ansible, puedes usar la cláusula “loop” y “with_items” para iterar sobre listas, diccionarios y rangos. La sintaxis básica es:
1 2 3 4 5 6 7 |
- name: Ejemplo de bucle con loop y with_items ansible.builtin.debug: msg: "Iterando sobre {{ item }}" with_items: - valor1 - valor2 - valor3 |
En este ejemplo, la tarea se ejecutará tres veces, con el valor de “item” siendo “valor1”, “valor2”, y “valor3”. Los bucles también funcionan con listas y diccionarios, lo que los hace aún más útiles.
Ejemplos avanzados de condicionales y bucles
A continuación, veremos algunos ejemplos avanzados que combinan condicionales y bucles.
Contar el número de archivos que coinciden con un patrón en un directorio
1 2 3 4 |
- name: Contar archivos ansible.builtin.set_fact: num_archivos: "{{ ansible_running_git_directory | count }}" when: ansible_running_git_directory is not regex('^$') |
En este ejemplo, “ansible_running_git_directory” es una variable incorporada que devuelve la ruta del directorio de trabajo de Git actual. El “when” garantiza que la tarea solo se ejecute si la variable no está vacía, y el resultado se almacena en la variable “num_archivos”.
Instalar un paquete para varios destinos usando with_items y when
1 2 3 4 |
- name: Instalar paquete en destinos seleccionados ansible.builtin.apt: name: {{ item }} state: present |
ENTRADAS RELACIONADAS CURSO ANSIBLE
- Curso Ansible: Qué es y para qué sirve
- Curso Ansible: Instalación, configuración inicial y ejemplo práctico básico
- Curso Ansible: Puertos de comunicación necesarios
- Curso Ansible: Playbooks conceptos básicos
- Curso Ansible: Manejo de Inventarios
- Curso Ansible: Manejo de Variables
- Curso Ansible: definición y uso de Roles
- Curso Ansible: qué son los Handlers
- Curso Ansible: Condicionales y bucles
- Curso Ansible: Gestión de secretos y credenciales con Ansible Vault
- Curso Ansible: Uso de roles de la comunidad con Ansible Galaxy
- Curso Ansible: Despliegue de aplicaciones en contenedores con Ansible
- Curso Ansible: Integración de Ansible con CI/CD pipelines
- Curso Ansible: Generar ficheros YAML
- Curso Ansible: Integración de Ansible con Terraform para gestionar Proxmox
- Curso Ansible: Provisioners de Ansible en Terraform
OTRAS ENTRADAS RELACIONADAS ANSIBLE
- Ansible: Conceptos básicos
- Ansible: Comandos básicos
- Instalar Ansible en Centos 7
- Ansible: Gestión básica máquinas virtuales Proxmox
- MacOS: Instalar Podman y Ansible
- Docker Swarm: Instalar Ansible AWX
- Ansible: Validar ficheros YAML
- Ansible: Instalar SQL Server 2019 en Linux
- Ansible: Crear página web WordPress
- Ansible: Instalación servidores web
- Ansible: Gestión de máquina Windows
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?