Cómo usar Ansible Galaxy

Cómo usar Ansible Galaxy
Ansible Galaxy es un gerente de rol y colección para Ansible. Puede compararlo con el Administrador de paquetes NPM (Node Package Manager) de Node.js.

Ansible Galaxy alberga roles y colecciones de Ansible creadas por la comunidad. En lugar de reescribirlos desde cero, puede instalarlo en su computadora utilizando la herramienta de línea de comandos Ansible Galaxy y usarlos en sus libros de jugadas.

También puede escribir sus roles y colecciones y subirlos a Ansible Galaxy. Esto está fuera del alcance de este artículo.

En este artículo, le mostraré cómo usar la herramienta de línea de comandos de Galaxy Ansible para instalar roles y colecciones de Galaxy Ansible y usarlos en su Playbook. Entonces empecemos.

Prerrequisitos:

Si quieres probar los ejemplos de este artículo,

1) Debe tener Ansible instalado en su computadora.

2) Debe tener al menos 2 hosts de Linux (un Debian 10 y un CentOS 7) configurado para la automatización Ansible.

Hay muchos artículos sobre Linuxhint dedicados a instalar Ansible y configurar hosts para Automatización Ansible. Puede consultarlos si es necesario.

Configuración de un directorio de proyecto:

Antes de comenzar, creemos un directorio de proyecto para que podamos organizar nuestros archivos de proyecto.

Para crear un directorio de proyecto Galaxy-Demo/ en tus HOGAR directorio, ejecute el siguiente comando:

$ Mkdir -PV Galaxy -Demo/Playbooks, Vars

Ahora, navegue al Galaxy-Demo/ Directorio de la siguiente manera:

$ CD Galaxy-Demo/

Crear un archivo de configuración ansible ansible.CFG En el directorio de su proyecto de la siguiente manera:

$ nano ansible.CFG

Escriba las siguientes líneas su ansible.CFG archivo.

[Valores predeterminados]
inventario = hosts
host_key_checking = falso

Una vez que haya terminado, presione + X seguido por Y y Para salvar el ansible.CFG archivo de configuración.

Crear un archivo de inventario ansible Hospedadores En el directorio de su proyecto de la siguiente manera:

$ nano anfitriones

Escriba las siguientes líneas en su Hospedadores archivo de inventario.

[base de datos]
VM1.notekita.comunicarse
[web]
VM9.notekita.comunicarse

Aquí, VM1.notekita.comunicarse es un anfitrión de Debian 10, y VM9.notekita.comunicarse es un anfitrión de Centos 7.

Una vez que haya terminado, presione + X seguido por Y y Para salvar el Hospedadores archivo de inventario.

Para verificar si puede hacer ping a los hosts remotos ansibles desde su computadora, ejecute el siguiente comando:

$ ansible all -u ansible -m ping

Como puede ver, puedo hacer ping a mis hosts remotos ansibles vm1.notekita.com y vm9.notekita.comunicarse.

Buscando roles y colecciones de Galaxy Ansible:

Puede buscar roles y colecciones de Galaxy Ansible en el sitio web oficial de Ansible Galaxy.

Una vez que se carga la página web, haga clic en el icono de búsqueda para buscar roles y colecciones de Galaxy Ansible.

Ahora, escriba lo que está buscando y haga clic en el icono de búsqueda.

En este ejemplo, he buscado servidor mysql. Como puede ver, se muestra el resultado de la búsqueda.

El término de búsqueda servidor mysql devolvió 2 colecciones y muchos roles.

Un rol es un módulo ansible que hace cosas específicas. Una colección tiene muchos roles. Esa es la principal diferencia entre un papel y una colección.

Para ver más información sobre un rol, haga clic en el rol.

El Detalles pestaña de un paquete de roles mostrará información técnica sobre el rol.

El Leerme La pestaña mostrará la información de instalación y uso del rol.

De la misma manera, un paquete de colección tendrá información de instalación en el Detalles pestaña.

Sobre el Contenido pestaña, se mostrarán los roles que las colecciones se mostrarán.

El Leerme La pestaña mostrará información útil sobre la colección.

Instalación y uso de roles de Galaxy Ansible:

En esta sección, le mostraré cómo instalar y usar un rol de Galaxy Ansible. Entonces empecemos.

Digamos; Desea instalar el rol de Galaxy Ansible geerlingguy.mysql.

Para hacer eso, ejecute el siguiente comando:

$ ansible-galaxy install geerlingguy.mysql

Rol de galaxia ansible geerlingguy.mysql debe instalarse.

Crea un libro de jugadas install_database.yaml en el Libros de jugadas/ directorio para probar el geerlingguy.mysql papel como sigue:

$ Nano Playbooks/install_database.yaml

Luego, escriba las siguientes líneas en el install_database.yaml archivo.

- Hosts: base de datos
Usuario: Ansible
convertirse en: si
vars_files:
-… /Vars /base de datos.yaml
Roles:
- papel: geerlingguy.mysql

Una vez que haya terminado, presione + X seguido por Y y Para salvar el install_database.yaml archivo.

Aquí, el papel de geerlingguy.mysql se usa en el roles sección.

El vars_files La sección se utiliza para agregar las variables de rol/libro de jugadas requeridas al libro de jugadas. Aquí, las variables se colocarán en el vars/base de datos.yaml archivo.

Ahora, crea un base de datos.yaml archivo en el vars/ Directorio de la siguiente manera:

$ nano vars/base de datos.yaml

Ahora, agregue sus variables deseadas en el base de datos.yaml archivo. He agregado las siguientes variables en el base de datos.yaml archivo.

mysql_databases:
- Nombre: DB01
Codificación: UTF8MB4
COLACIÓN: UTF8MB4_UNICODE_CI
mysql_users:
- Nombre: Linuxhint
anfitrión: "%"
Contraseña: secreto
Priv: "DB01.*:TODO"

Estas variables configuran geeringguy.mysql rol para que cree un nuevo usuario Linuxhint, Establece la contraseña secreto Para el Linuxhint usuario, crea una nueva base de datos DB01 y subvenciones Linuxhint Acceso completo al usuario al DB01 base de datos.

Una vez que haya terminado, presione + X seguido por Y y Para salvar el base de datos.yaml archivo.

Ahora puedes ejecutar el install_database.yaml Libro de jugadas de la siguiente manera:

$ Ansible-Playbook Playbooks/install_database.yaml

Como puede ver, el libro de jugadas está ejecutando el geerlingguy.mysql role. Puede tomar un tiempo completar.

En este punto, el install_mysql.yaml El libro de jugadas debe completarse.

En mi VM1.notekita.com debian 10 anfitrión, el mysql El servicio se está ejecutando como puede ver en la captura de pantalla a continuación,

También puedo iniciar sesión en el servidor de base de datos MySQL como Linuxhint usuario.

Como puede ver, la base de datos DB01 también se crea.

Entonces, así es como se instala y usa los roles de Galaxy Ansible.

Instalación y uso de colecciones Ansible:

En esta sección, le mostraré cómo instalar y usar una colección de Galaxy Ansible. Entonces empecemos.

Digamos; Desea instalar la colección Galaxy Ansible geerlingguy.php_roles.

Para hacer eso, ejecute el siguiente comando:

$ Ansible-Galaxy Collection Instalar Geerlingguy.php_roles

La colección geerlingguy.php_roles debe instalarse.

Para usar la colección, cree una nueva Playbook install_php.yaml en el Libros de jugadas/ Directorio de la siguiente manera:

$ Nano Playbooks/install_php.yaml

Ahora, escriba las siguientes líneas en el install_php.yaml archivo.

- Hosts: Web
Usuario: Ansible
convertirse en: si
Colecciones:
- geerlingguy.php_roles
Roles:
- Papel: PHP
- papel: php_versions
Vars:
php_version: '7.3 '

Una vez que haya terminado, presione + X seguido por Y y Para salvar el install_php.yaml archivo.

Estas líneas importan el geerlingguy.php_roles Colección en tu libro de jugadas.

En el roles Sección, puede usar los roles que necesita de su colección. Aquí, he agregado 2 roles (php y php_versions) desde el geerlingguy.php_roles recopilación.

El php El rol no tiene ninguna variables específicas de rol.

Si desea configurar un papel usando variables, puede agregarlas debajo del vars Sección de la role como sigue.

Puede encontrar qué roles están disponibles para su uso en la página oficial de Galaxy Ansible de la colección

La página oficial de Galaxy Ansible del rol tendrá información sobre qué variables puede usar para configurar el rol.

Ahora puedes ejecutar el install_php.yaml Libro de jugadas de la siguiente manera:

$ Ansible-Playbook Playbooks/install_php.yaml

Como puede ver, el libro de jugadas se está ejecutando. Puede tomar un tiempo completar.

En este punto, el libro de jugadas debe completarse.

Como puede ver, puedo acceder al servidor web de Apache 2 que se ejecuta en mi host CentOS 7 VM9.notekita.comunicarse.

También he creado un índice.php archivo en el /var/www/html/ Directorio de mi host CentOS 7 VM9.notekita.comunicarse.

Como puede ver, el servidor web puede servir índice.php página correctamente.

Entonces, así es como instala y usa las colecciones de Galaxy Ansible.

Conclusión:

En este artículo, he explicado qué es la galaxia ansible. También he demostrado cómo instalar y usar roles/colecciones de Ansible Galaxy. Ansible Galaxy lo ayudará a evitar reinventar la rueda, también conocido como repetición de código. Debería poder realizar sus proyectos ansibles más rápido usando Galaxy Ansible.