Integración de Ansible y Azure (parte 2)

Este post pertenece a una serie de publicaciones relacionadas:

  • Integración de Ansible y Azure - Introducción
  • Integración de Ansible y Azure - Hello world!
  • Integración de Ansible y Azure - Desplegar una VM
  • En la entrega anterior se prepararon las credenciales que vamos a utilizar al momento de generar nuestros playbooks en Ansible. Como se comentó anteriormente Ansible, siendo un lenguaje declarativo, permite trabajar de tal manera que simplifica las tareas de administración de la infraestructura sumado a la flexibilidad generada a la hora de implementar soluciones, y sin tener que implementar agentes para tal fin. Estas tareas se agrupan en playbooks y, para no aburrir con el teórico, vamos a comenzar a definir un playbook y ver la estructura que presentan.

    Anatomía de un playbook

    ---
    - hosts: webservers
      vars:
        http_port: 80
        max_clients: 200
      remote_user: root
      tasks:
      - name: ensure apache is at the latest version
        yum:
          name: httpd
          state: latest
      - name: write the apache config file
        template:
          src: /srv/httpd.j2
          dest: /etc/httpd.conf
        notify:
        - restart apache
      - name: ensure apache is running (and enable it at boot)
        service:
          name: httpd
          state: started
          enabled: yes
      handlers:
        - name: restart apache
          service:
            name: httpd
            state: restarted

    El bloque de código anterior es un playbook, y como tal, se pueden observar agrupaciones que permiten descifrar sin mayor esfuerzo ciertas tareas, variables, etc. Vamos a realizar comentarios sobre cada una de ellas:

    hosts

    Dentro de la sección hosts vamos a poder definir el host o el grupo de host donde se ejecutarán las tareas. Este valor es obligatorio.

    vars

    Son variables definidas para determinar la configuración de los recursos a implementar por medio de las tareas.

    tasks

    Lista de acciones a ejecutar, en donde se pueden invocar módulos externos y usar las variables definidas anteriormente (en caso que se hayan definido).

    handlers

    Los handlers son nuestra forma de llamar a una tarea después de que se completa otra tarea previamente.

    Comments