En Ansible a Manipulador es como cualquier otra tarea, pero solo se ejecuta cuando se llama o notificado. Se toman medidas cuando se realiza un cambio en el host administrado. Los controladores se utilizan para iniciar un cambio secundario, p. Ej. B. iniciar o reiniciar un servicio después de la instalación, o incluso volver a cargar un servicio después de realizar algunos cambios en los archivos de configuración. En esta guía, vamos a arrojar más luz sobre los controladores de Ansible. Vamos a aprender a usar controladores en los libros de jugadas de Ansible.
Archivo de libro de jugadas de Ansible con un controlador
Para comprender mejor cómo funcionan los controladores, tomemos un ejemplo de un archivo de libro de jugadas: install_apache.yml – esto instala el servidor web Apache y luego reinicia el servicio Apache. El siguiente ejemplo notifica al controlador que reinicie el servicio Apache poco después de la instalación. Esto se logra con el Notificar módulo como se muestra. Tenga en cuenta que el nombre «Notificar» debe coincidir con el nombre del controlador dado, de lo contrario se producirán errores en el archivo de su libro de jugadas.
--- - hosts: staging name: Install become: yes tasks: - name: Install Apache2 on Ubuntu server apt: name: apache2 state: present update_cache: yes notify: - Restart apache2 handlers: - name: Restart apache2 service: name: apache2 state: restarted
Ahora ejecutemos el archivo del libro de jugadas.
$ ansible-playbook /etc/ansible/install_apache.yml -K
En la salida, puede ver que el controlador se ejecuta justo después de la tarea.
Varias tareas con varios controladores
Además, varias tareas pueden llamar a varios controladores. Eche un vistazo al archivo del libro de jugadas a continuación.
Hay 2 tareas que se deben realizar aquí:
- Instale el servidor web Apache
- Permita el tráfico HTTP en el firewall de UFW.
Después de que las tareas se ejecutaron correctamente, verifiqué cada uno de los controladores con el ‘notificar‘Módulo como se muestra a continuación. El primer controlador reinicia Apache y el segundo recarga el firewall UFW.
--- - hosts: staging name: Install become: yes tasks: - name: Install Apache2 on Ubuntu server apt: name: apache2 state: present update_cache: yes - name: Allow HTTP traffic on UFW firewall ufw: rule: allow port: http proto: tcp notify: - Restart apache2 - Reload ufw firewall handlers: - name: Restart apache2 service: name: apache2 state: restarted - name: Reload ufw firewall ufw: state: enabled
Cuando se ejecuta el archivo del libro de jugadas, ambos controladores de Ansible se ejecutan inmediatamente después de que se instala Apache y se permite el tráfico HTTP en el firewall.
Las acciones secundarias tomadas por los controladores aquí son:
- Reiniciar Apache
- Active y vuelva a cargar el firewall para los cambios realizados.
Conclusión
Como ha visto, los controladores son como tareas normales, solo que se hace referencia a ellos con un módulo único global llamado ‘.notificar‘. Si no se notifica a un controlador, no se puede ejecutar. Recuerde que todos los controladores se ejecutarán después de que se hayan completado todas las tareas.
también leer :: Cómo crear roles de Ansible y usarlos en el libro de jugadas