Búsqueda de sitios web

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


En la Parte 9 de la serie Ansible, aprenderá cómo crear y descargar roles en Ansible Galaxy y 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 único nodo de control utilizando un único archivo de libro de estrategias.

Sin embargo, escribir guías para gestionar el mismo servicio en diferentes entornos puede resultar bastante engorroso y esto suele provocar una redundancia de código. Además, una mayor complejidad puede aumentar la dificultad para administrar todos los dispositivos.

Entran los roles. En Ansible, los roles se utilizan para dividir los manuales en archivos reutilizables que se pueden usar en otras instancias en las que surge la necesidad de realizar una tarea similar. Esto eliminó la necesidad de reescribir los manuales una y otra vez y ahorra una gran cantidad de tiempo y energía.

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

Creando un rol 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 utilizará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 desde Ansible Galaxy

Los roles desempeñan un papel crucial al compartir código con otros usuarios de la comunidad Ansible utilizando la plataforma Ansible Galaxy. En Ansible Galaxy, obtienes miles de roles que realizan 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 manuales y ayudarle 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, ejecute.

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 desempeñará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, vamos a instalar el rol 5KYDEV0P5.skydevops-mysql.

ansible-galaxy install 5KYDEV0P5.skydevops-mysql

La función se descarga y se extrae al directorio de funciones 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 estrategias 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 panel.

Por ejemplo, para buscar una función de monitoreo como elasticsearch, haga clic en la opción "Monitoreo" 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 puedes 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

Conclusión

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