Ansible Galaxy: todo lo que necesita saber
Publicado: 2022-09-29Ansible es una popular herramienta de gestión de configuración de código abierto. Por otro lado, Ansible Galaxy es un repositorio de roles de Ansible.
Es posible que solo tenga un puñado de libros de jugadas como administrador de sistemas principiante. A medida que mejoren sus habilidades de automatización y se familiarice más con Ansible, aprenderá todas las mejores prácticas. A medida que aumente sus libros de jugadas, también se dará cuenta de lo importante que es Ansible Galaxy.
¿Qué es Ansible Galaxy?
Ansible Galaxy es un repositorio en línea de código abierto basado en la web para el contenido de Ansible (principalmente roles y colecciones). Es casi como si hubieras creado algo nuevo y quisieras compartirlo con los demás.
Si tiene algún problema con la automatización de Ansible o necesita una solución preempaquetada de otros para poner en marcha sus proyectos de automatización, Ansible Galaxy puede ayudarlo. Por ejemplo, podría tener roles, colecciones, módulos o complementos. Muchos miembros de la comunidad ya han subido sus colecciones y funciones de Ansible.

Para realizar tareas como instalar roles de Galaxy o cualquier SCM de git, crear o eliminar roles, o realizar algunas tareas en el sitio de Galaxy, podemos usar el comando 'ansible-galaxy”. Este comando viene preinstalado con Ansible, por lo que puede usarlo inmediatamente después de instalar Ansible.
El proyecto Galaxy es un proyecto de código abierto que nos permite alojar nuestros servidores Galaxy internos. Para usar el servidor Galaxy interno, deberá editar la configuración predeterminada en el archivo Ansible.cfg
con la dirección del servidor del servidor interno Galaxy porque, de manera predeterminada, usa la dirección del servidor galaxy.ansible.com.
Descripción general de Ansible
Ansible puede describirse como un multiplicador que automatiza y escala infraestructuras de todos los tamaños. Se puede usar para administrar configuraciones, orquestar implementaciones y otras funciones. Ansible es muy fácil de configurar. Ansible puede ser utilizado incluso por un administrador de sistemas novato para automatizar la infraestructura en solo unas pocas horas.
Ansible automatiza mediante el uso del protocolo SSH. El mecanismo de control utiliza una conexión SSH para comunicarse con sus hosts de destino (normalmente hosts Linux). Los administradores de sistemas de Windows aún pueden usar Ansible para automatizar sus entornos de Windows con WinRM en lugar de SSH. La máquina de control aún debe ejecutar Linux.
Ansible puede realizar tareas comunes de administrador de sistemas, como la aplicación de parches, la actualización, la administración de grupos y usuarios, el aprovisionamiento y otras tareas administrativas.
Ansible es la herramienta de administración, orquestación e implementación de configuración más utilizada y popular en la actualidad. Su sencillez es uno de sus principales puntos fuertes. Es simple, poderoso, pero sin agentes. Esto significa que un administrador de sistemas nuevo o de nivel de entrada puede automatizar la infraestructura en solo unas horas. Ansible permite una rápida escalabilidad, eficiencia y funcionalidad cruzada.
Trabajando en Ansible Galaxy
A continuación, abramos la terminal y ejecutemos algunos comandos con Ansible Galaxy. Pero antes de eso, debe tener la última versión de Ansible instalada en su sistema.
Cuando tenga la última versión de Ansible instalada en su sistema, simplemente ingrese ansible-galaxy en la terminal y obtendrá todas las opciones disponibles con Galaxy.
ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy

En primer lugar, puede comenzar con el comando init y crear un rol. Aquí estoy creando un rol de 'prueba'. Utilice el comando ls para comprobar si el rol se ha creado correctamente. El comando init también crea los archivos necesarios dentro del directorio del rol de prueba.
ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy init testing

Ansible galaxy es una comunidad grande y activa donde ya se han creado muchos roles que puede usar directamente.
A continuación se muestra la página que se abrirá cuando navegue por 'galaxy.ansible.com', o podemos decir que es la página de inicio del sitio web 'Ansible Galaxy'. Podemos hacer clic en cualquier categoría popular desde la página de inicio o hacer clic en el botón 'Buscar' para obtener más filtros para aplicar una búsqueda granular.

Por ejemplo, si está buscando un rol de servidor MySQL, simplemente búsquelo y haga clic en el botón de filtro. Puedes ver que geerlingguy tiene descargas máximas; podemos intentar instalar este rol. Haga clic en geerlingguy MySQL.

Luego obtendrá el comando de instalación para instalar este rol usando ansible-galaxy
.

Ejecute el comando mencionado en la instantánea anterior para descargar e instalar la función del servidor MySQL en su máquina.
ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy install geerlingguy.mysql

Si ya sabe qué rol buscar por un autor en particular, puede usar el comando de búsqueda como se muestra a continuación.

ubuntu@ubuntu-VirtualBox:~$ búsqueda de ansible-galaxy búsqueda elástica --autor geerlingguy

Comandos comunes de Ansible Galaxy
El comando ansible-galaxy administra funciones y colecciones mediante galaxy.ansible.com. A continuación se muestran algunos comandos ansible-galaxy
muy útiles que todos los administradores de sistemas usan de vez en cuando:
-
ansible-galaxy list:
este comando galaxy muestra una lista de todos los roles instalados, con sus números de versión. -
ansible-galaxy remove:
Este comando galaxy elimina un rol instalado en el sistema. -
ansible-galaxy info:
este comando galaxy proporcionará información detallada sobre Ansible Galaxy. -
ansible-galaxy init
: este comando galaxy se puede usar para crear una plantilla de rol adecuada para enviar a Ansible Galaxy. -
ansible-galaxy import
: este comando de galaxia requiere un inicio de sesión para importar un rol desde el sitio web oficial de galaxy.
Los comandos anteriores (init, import, install, remove) se pueden usar con el comando de colección ansible-galaxy
para administrar colecciones usando Ansible galaxy.
Ahora hablemos de roles y colecciones en Ansible Galaxy.
Crear funciones con Ansible Galaxy
Ansible Galaxy es básicamente un gran repositorio público para roles de Ansible. Los roles vienen con READMEs
que explican el uso y las variables. Galaxy tiene muchos roles que evolucionan y crecen continuamente.
Galaxy puede agregar fuentes de roles como GitHub usando git. Ansible Galaxy nos permite crear roles de Ansible usando el comando ansible-galaxy
. Ansible-galaxy init se puede usar para inicializar un nuevo rol de galaxia, o puede usar el comando ansible-galaxy install <name of role>
para instalar el rol.
Antes de poder usarlos en libros de jugadas, se debe descargar el rol. Una vez que se han colocado en el directorio predeterminado /etc/ansible/roles
, puede encontrar ejemplos de funciones.
Estructura de roles de Ansible y su significado
A continuación se muestran los archivos y directorios creados cuando se instala un rol:
- README.md es el archivo Léame que describe el rol. El archivo Léame contiene todos los detalles sobre los parámetros de entrada y el ejemplo
yml
. - tareas: todas las tareas se pueden dar de alta por el rol en tareas. El punto de entrada para el Rol es Main.yml. Aquí es donde comienza la ejecución. Este archivo puede contener otros archivos.
- Controladores: esta categoría incluye controladores que se pueden usar en este rol o en cualquier otro rol.
- valores predeterminados: las variables predeterminadas para el rol.
- vars: variables que son más importantes que los valores predeterminados para Rol.
- Archivos: estos archivos se pueden implementar mediante Rol.
- Plantillas: esta sección contiene plantillas que se pueden usar a través de Rol.
- meta: los metadatos se pueden usar para definir los roles en meta. Este archivo también debe incluir las dependencias de roles.
- Pruebas: pruebas de CI que se van a ejecutar.
- biblioteca: incrustación de módulos o complementos en roles. No creado por el comando init. También puede crear un módulo personalizado en Python en esta carpeta y luego usarlo en sus tareas.
Cree colecciones con Ansible Galaxy
Ansible Galaxy es la mejor herramienta para administrar roles y se ha utilizado durante años. Sin embargo, verá nuevas funciones o cambios en Ansible Galaxy. La versión 2.2.8 de Ansible ahora incluye la función de recopilación.
El contenido de Ansible se puede distribuir mediante colecciones. Se utilizan para empaquetar y distribuir playbooks y roles, módulos y complementos.
La siguiente estructura es la base de las colecciones:
recopilación/ ├── documentos/ ├── galaxia.yml ├── complementos/ │ ├── módulos/ │ │ └── módulo1.py │ ├── inventario/ │ └── .../ ├── LÉAME.md ├── papeles/ │ ├── rol1/ │ ├── rol2/ │ └── .../ ├── libros de jugadas/ │ ├── archivos/ │ ├── vars/ │ ├── plantillas/ │ └── tareas/ └── pruebas/
Creación de un esqueleto de colección
Para instalar una colección en su computadora, puede usar el comando de instalación de la colección ansible-galaxy.
En particular, algunos subcomandos también se pueden usar con ansible galaxy.
-
init
: crea una estructura de colección básica basada en la plantilla predeterminada de Ansible'sle o en la suya propia -
build
: crea un artefacto de colección que se puede cargar en Galaxy o en su propio repositorio -
publish
: Galaxy publica un artefacto de colección construida -
install
: instala una o más colecciones
Conclusión
Ansible galaxy es una excelente manera de organizar y pensar en sus libros de roles en constante crecimiento. Ansible Galaxy tiene aproximadamente 39 000 autores de la comunidad, 30 000 roles y 1656 colecciones que se pueden usar para iniciar rápidamente nuestro proyecto de automatización. La guía para desarrolladores y la guía para colaboradores explican cómo contribuir al código existente de Ansible Galaxy, que es un proyecto de código abierto.
También le pueden interesar las tareas de Sysadmin que puede automatizar con Ansible.