Tutoriales

Uso de controladores en Ansible Playbook

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

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba