Cómo crear y descargar roles en Ansible Galaxy y usarlos - Parte 9


En la parte 9 de la serie Ansible, aprenderá a crear y descargar roles en Ansible Galaxy y a usarlos. Ansible es una herramienta de implementación automática y administración de configuración simple pero efectiva que automatiza sin problemas tareas complejas de manera eficiente. Puede administrar cientos o incluso miles de servidores desde un solo nodo de control utilizando un solo archivo de libro de jugadas.

Sin embargo, escribir libros de jugadas para administrar el mismo servicio en diferentes entornos puede ser bastante complicado y esto generalmente conduce a la redundancia de código. Además, una mayor complejidad puede aumentar la dificultad de administrar todos los dispositivos.

Llegan los roles. En Ansible, los roles se usan para dividir los libros de jugadas en archivos reutilizables que se pueden usar en varias otras instancias donde surge la necesidad de realizar una tarea similar. Esto eliminó la necesidad de reescribir los libros de jugadas una y otra vez y ahorra una gran cantidad de tiempo y energía.

Los roles son simplemente funcionalidades de los libros de jugadas. Un rol incluye prácticamente lo que constituiría un libro de jugadas: tareas, archivos, módulos, variables y plantillas. Además, tenga en cuenta que cada función se limita a una tarea en particular o al resultado deseado.

Creando un rol de Ansible

Para crear un rol en Ansible, simplemente use la sintaxis.

# ansible-galaxy init role_name 

Se crearán varios directorios y archivos en su directorio de trabajo actual. En este caso, he decidido crear un rol en el directorio/etc/ansible/roles.

Creemos un rol llamado apache.

# ansible-galaxy init apache

Utilice el comando de árbol para echar un vistazo a la estructura de directorios del rol.

# tree apache

Como puede ver, se han creado varios directorios, sin embargo, no todos se usarán en el libro de jugadas.

Ahora, para usar su rol recién creado en un libro de jugadas, defina una tarea en el archivo main.yml contenido en el directorio de tareas de su nuevo rol.

/apache/tasks/main.yml

---

- hosts: database_servers

  tasks:

    - name: Install Apache2 on Ubuntu webserver
      apt:
         name: apache2
         state: installed

Luego, cree un archivo de libro de jugadas y llame al rol como se muestra.

--- 
- hosts: webservers
  roles:
   - apache

Instalación de un rol de Ansible Galaxy

Los roles juegan un papel crucial al compartir código con otros usuarios de la comunidad Ansible que utilizan la plataforma Ansible Galaxy. En Ansible Galaxy, obtienes miles de roles realizando diferentes tareas como la instalación de servidores web y bases de datos, herramientas de monitoreo, etc.

Ansible Galaxy es una base de datos o un repositorio de roles de Ansible que puede aprovechar en sus libros de jugadas y ayudar a optimizar sus tareas.

Para buscar un rol en Ansible Galaxy, simplemente ejecute el comando.

# ansible-galaxy search <role>

Por ejemplo, para buscar un rol llamado mysql run.

# ansible-galaxy search mysql

Como puede ver, hay cientos de roles que coinciden con la palabra clave de búsqueda mysql. Sin embargo, no todos los roles realizarán lo que usted pretende, por lo que se recomienda que lea las instrucciones detenidamente.

Para recopilar más información sobre un rol, simplemente ejecute el comando Ansible:

# ansible-galaxy info 5KYDEV0P5.skydevops-mysql

En nuestro ejemplo, instalaremos el rol 5KYDEV0P5.skydevops-mysql.

# ansible-galaxy install 5KYDEV0P5.skydevops-mysql

El rol se descarga y extrae al directorio de roles predeterminado ubicado en/etc/ansible/roles.

A partir de entonces, el rol se puede llamar en un libro de jugadas, por ejemplo:

---
- name: Install MySQL server
  hosts: webservers

 roles:
    • 5KYDEV0P5.skydevops-mysql

Ahora puede ejecutar de forma segura el libro de jugadas de Ansible como se muestra.

# ansible-playbook install_mysql.yml

Además, puede visitar Ansible Galaxy a través de su navegador web y buscar manualmente roles para realizar diversas tareas como se describe en el tablero.

Por ejemplo, para buscar una función de supervisión como elasticsearch, haga clic en la opción "Supervisión" y busque la función como se muestra.

Ansible Galaxy facilita a los usuarios la instalación de los mejores roles al enumerar los roles más populares y descargados. Para obtener más información sobre un rol específico, simplemente haga clic en él.

En un libro de jugadas, también puede especificar más de un rol, por ejemplo.

---
- name: Install MySQL server
  hosts: webservers

 roles:
    • 5KYDEV0P5.skydevops-mysql
    • Aaronpederson.mariadb

Para enumerar los roles instalados, simplemente ejecute.

# ansible-galaxy list

Los roles facilitan la reutilización y el intercambio de libros de jugadas de Ansible. De esta manera, le ahorran al usuario mucho tiempo al intentar escribir mucho código redundante y gastan demasiado tiempo que se habría utilizado en otras tareas de administración del sistema. Y eso es todo por esta guía.