Ansible 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 sus habilidades de automatización mejoren 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.

What is Ansible Galaxy?

galaxia ansible es un repositorio en línea de código abierto basado en la web para 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.

Ansible-Galaxy-2

Para realizar tareas como instalar roles desde Galaxy o cualquier SCM de git, crear o eliminar roles o realizar algunas tareas en el sitio de Galaxy, podemos usar el ansible-galaxy dominio. 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 Ansible.cfg archivo con la dirección del servidor del servidor interno de Galaxy porque, de forma predeterminada, utiliza la dirección del servidor galaxia.ansible.com.

Ansible Overview

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 tan solo unas horas.

Ansible automatiza mediante el uso de 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 administración 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 el más utilizado y popular gestión de configuración, orquestación y herramienta de implementación hoy. 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.

Working on 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 tengas lo último Ansible instalado en su sistema, simplemente ingrese ansible-galaxy en el terminal, y obtendrás todas las opciones disponibles con el Galaxy.

ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy
galaxy-ansible

En primer lugar, puede comenzar con el comando init y crear un rol. Aquí estoy creando un rol de 'prueba'. Utilizar el ls Comando para comprobar si el rol se ha creado correctamente. los init El comando también crea los archivos necesarios dentro del directorio del rol de prueba.

ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy init testing
ansible-galaxy-init

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 'galaxia.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.

ansible-galaxy

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.

ansible-galaxy-mysql

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

ansible-galaxy-instalar-mysql

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
ansible-galaxy-instalar

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:~$ ansible-galaxy search elasticsearch --author geerlingguy
ansible-galaxy-búsqueda

Common Ansible Galaxy Commands

El comando ansible-galaxy administra roles y colecciones usando galaxia.ansible.com. A continuación hay algunos muy útiles ansible-galaxy Comandos que todo administrador de sistemas usa 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 utilizar para crear una plantilla de rol adecuada para enviar a Ansible Galaxy.
  • ansible-galaxy import: Este comando galaxy 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 ansible-galaxy Comando de colección para administrar colecciones usando Ansible galaxy.

Ahora hablemos de roles y colecciones en Ansible Galaxy.

Create Roles with 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 ansible-galaxy dominio. Ansible-galaxy init se puede usar para inicializar un nuevo rol de galaxia, o puede usar el ansible-galaxy install <name of role> Comando 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 roles.

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.

Create Collections with 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:

collection/
├── docs/
├── galaxy.yml
├── plugins/
│ ├──
modules/
│ │ └── module1.py
│ ├──
inventory/
│ └── .../
├── README.md
├── roles/
│ ├──
role1/
│ ├──
role2/
│ └── .../
├── playbooks/
│ ├──
files/
│ ├──
vars/
│ ├──
templates/
│ └── tasks/
└── tests/

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 construido
  • 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 30 autores de la comunidad, 1656 XNUMX roles y XNUMX 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 podría interesarle Tareas de administrador de sistemas que puede automatizar con Ansible.