Ansible Galaxy alberga roles y colecciones de Ansible creados por la comunidad. En lugar de reescribirlos desde cero, puede instalarlo en su computadora usando la herramienta de línea de comandos de Ansible Galaxy y usarlos en sus libros de jugadas.
También puede escribir sus roles y colecciones y cargarlos en 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 Ansible Galaxy para instalar roles y colecciones de Ansible Galaxy y usarlos en su libro de jugadas. Entonces empecemos.
Requisitos previos:
Si quieres probar los ejemplos de este artículo,
1) Debes tener Ansible instalado en tu computadora.
2) Debe tener al menos 2 hosts Linux (Debian 10 y CentOS 7) configurados para la automatización de Ansible.
Hay muchos artículos sobre LinuxHint dedicados a la instalación de Ansible y la configuración de hosts para la automatización de Ansible. Puede consultarlos si es necesario.
Configuración de un directorio de proyectos:
Antes de comenzar, creemos un directorio de proyecto para que podamos organizar los archivos de nuestro proyecto.
Para crear un directorio de proyecto galaxy-demo / en tus CASA directorio, ejecute el siguiente comando:
$ mkdir -pv galaxy-demo / playbooks, vars
Ahora, navega hasta el galaxia-demo / directorio de la siguiente manera:
$ cd galaxy-demo /
Cree un archivo de configuración de Ansible ansible.cfg en el directorio de su proyecto de la siguiente manera:
$ nano ansible.cfg
Escriba en las siguientes líneas su ansible.cfg expediente.
[valores predeterminados]inventario = hosts
host_key_checking = Falso
Una vez que haya terminado, presione
Cree un archivo de inventario de Ansible Hospedadores en el directorio de su proyecto de la siguiente manera:
$ nano hosts
Escriba las siguientes líneas en su Hospedadores archivo de inventario.
[base de datos]vm1.nodekite.com
[web]
vm9.nodekite.com
Aquí, vm1.nodekite.com es un host Debian 10, y vm9.nodekite.com es un host CentOS 7.
Una vez que haya terminado, presione
Para verificar si puede hacer ping a los hosts Ansible remotos desde su computadora, ejecute el siguiente comando:
$ ansible all -u ansible -m ping
Como puede ver, puedo hacer ping a mis hosts Ansible remotos vm1.nodekite.com y vm9.nodekite.com.
Búsqueda de funciones y colecciones de Ansible Galaxy:
Puede buscar roles y colecciones de Ansible Galaxy en el sitio web oficial de Ansible Galaxy.
Una vez que se cargue la página web, haga clic en el ícono de búsqueda para buscar roles y colecciones de Ansible Galaxy.
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 de Ansible que hace cosas específicas. Una colección tiene muchos roles. Esa es la principal diferencia entre un rol y una colección.
Para ver más información sobre un rol, haga clic en el rol.
La Detalles La pestaña de un paquete de roles mostrará información técnica sobre el rol.
La Léame La pestaña mostrará la información de instalación y uso del rol.
De la misma forma, 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 instalarán las colecciones.
La Léame pestaña mostrará información útil sobre la colección.
Instalación y uso de funciones de Ansible Galaxy:
En esta sección, le mostraré cómo instalar y usar un rol de Ansible Galaxy. Entonces empecemos.
Digamos; desea instalar el rol Ansible Galaxy geerlingguy.mysql.
Para hacer eso, ejecute el siguiente comando:
$ ansible-galaxy instalar geerlingguy.mysql
Papel de Ansible Galaxy geerlingguy.mysql debe ser instalado.
Crea un libro de jugadas install_database.yaml en el libros de jugadas / directorio para probar el geerlingguy.mysql papel de la siguiente manera:
$ nano playbooks / install_database.yaml
Luego, escriba las siguientes líneas en el install_database.yaml expediente.
- hosts: base de datosusuario: ansible
convertirse en: si
vars_files:
-… / Vars / base de datos.yaml
roles:
- papel: geerlingguy.mysql
Una vez que haya terminado, presione
Aquí, el papel de geerlingguy.mysql se utiliza en el roles sección.
La vars_files La sección se usa 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 expediente.
Ahora, crea un base de datos.yaml archivo en el vars / directorio de la siguiente manera:
$ nano vars / base de datos.yaml
Ahora, agregue las variables que desee en el base de datos.yaml expediente. He agregado las siguientes variables en el base de datos.yaml expediente.
mysql_databases:- nombre: db01
codificación: utf8mb4
colación: utf8mb4_unicode_ci
mysql_users:
- nombre: linuxhint
anfitrión: "%"
contraseña: secreto
priv: "db01.*:TODAS"
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 usuario acceso completo a la db01 base de datos.
Una vez que haya terminado, presione
Ahora, puede 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 ejecuta el geerlingguy.mysql papel. Puede que tarde un poco en completarse.
En este punto, el install_mysql.yaml el libro de jugadas debe estar completo.
En mi vm1.nodekite.com Debian 10 host, 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 instalas y usas los roles de Ansible Galaxy.
Instalación y uso de colecciones Ansible:
En esta sección, le mostraré cómo instalar y usar una colección Ansible Galaxy. Entonces empecemos.
Digamos; desea instalar la colección Ansible Galaxy geerlingguy.php_roles.
Para hacer eso, ejecute el siguiente comando:
$ ansible-galaxy collection instalar geerlingguy.php_roles
La colección geerlingguy.php_roles debe ser instalado.
Para usar la colección, cree una nueva libro de jugadas 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 expediente.
- hosts: webusuario: ansible
convertirse en: si
colecciones:
- geerlingguy.php_roles
roles:
- rol: php
- rol: php_versions
vars:
php_version: '7.3 '
Una vez que haya terminado, presione
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 colección.
La php el rol no tiene ninguna variable específica del rol.
Si desea configurar un rol mediante variables, puede agregarlas en la vars sección de la papel como sigue.
Puede encontrar qué roles están disponibles para su uso en la página oficial de Ansible Galaxy de la colección
La página oficial de Ansible Galaxy del rol tendrá información sobre qué variables puede usar para configurar el rol.
Ahora, puede 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 que tarde un poco en completarse.
En este punto, se debe completar el libro de jugadas.
Como puede ver, puedo acceder al servidor web Apache 2 que se ejecuta en mi host CentOS 7 vm9.nodekite.com.
También he creado un índice.php archivo en el / var / www / html / directorio de mi host CentOS 7 vm9.nodekite.com.
Como puede ver, el servidor web puede servir índice.php página correctamente.
Entonces, así es como instalas y usas las colecciones de Ansible Galaxy.
Conclusión:
En este artículo, he explicado qué es Ansible Galaxy. También he demostrado cómo instalar y usar roles / colecciones de Ansible Galaxy. Ansible Galaxy te ayudará a evitar reinventar la rueda, también conocida como repetición de código. Debería poder hacer sus proyectos de Ansible más rápido con Ansible Galaxy.