Aplicando la Condición When de Ansible
Ahora que comprendes los fundamentos de la condición when de Ansible, profundicemos en cómo aplicarla en tus playbooks de Ansible.
Expresiones Condicionales
La condición when admite una variedad de expresiones, incluyendo:
- Operadores de comparación (==, !=, >, <, >=, <=)
- Operadores booleanos (and, or, not)
- Pruebas de pertenencia (in, not in)
- Coincidencia con expresiones regulares (match)
Aquí hay un ejemplo que utiliza múltiples condiciones:
- name: Instalar paquete
apt:
name: nginx
state: present
when:
- ansible_distribution == 'Ubuntu'
- ansible_distribution_version is version('20.04', '>=')
En este ejemplo, la tarea solo se ejecutará si el sistema está ejecutando Ubuntu y la versión es 20.04 o posterior.
Accediendo a Variables y Hechos
Puedes usar variables y hechos dentro de tus condiciones when para hacerlas más dinámicas y flexibles. Por ejemplo:
- name: Instalar paquete
apt:
name: "{{ package_name }}"
state: present
when: package_name is defined
En este ejemplo, la tarea solo se ejecutará si la variable package_name está definida.
Combinando Condiciones
También puedes combinar múltiples condiciones usando los operadores and, or y not. Por ejemplo:
- name: Reiniciar servicio
systemd:
name: nginx
state: restarted
when:
- ansible_service_mgr == 'systemd'
- nginx_config_changed | default(false)
En este ejemplo, la tarea solo se ejecutará si el sistema está usando systemd y la variable nginx_config_changed es verdadera (o si la variable no está definida).
Al aprovechar el poder de la condición when de Ansible, puedes crear playbooks más robustos y adaptables que pueden manejar una amplia gama de escenarios.