Ansible es una popular herramienta de administración de la configuración del servidor que permite a los usuarios administrar y monitorear sistemas remotos desde un solo nodo de control. Con Ansible, puede instalar paquetes de software, implementar servicios y realizar configuraciones en múltiples hosts desde un solo nodo en lugar de iniciar sesión en cada uno de los nodos. Ya tenemos una guía sobre cómo instalar y configurar Ansible en Ubuntu 20.04. Esto le dará una introducción y una posible ventaja a medida que avanza en esta guía. En esta guía, nos concentraremos en qué son los playbooks, cómo crearlos y usarlos para implementar servicios.
Configuración del laboratorio
Ya tenemos un laboratorio en casa como se indica a continuación. Para aprovechar al máximo esta guía, puede replicarla o tener un entorno de laboratorio similar en una plataforma virtualizada:
Nodo de control de Ansible IP:192.168.2.106
Alojamiento administrado IP:192.168.2.108
Con la configuración bajo control, comencemos.
¿Qué es un archivo de guía?
Ansible, al igual que Terraform, se incluye en la Infraestructura como código. ¿Qué significa esto? La infraestructura como código (IaC) se describe como un mecanismo de aprovisionamiento y administración de hosts mediante archivos de configuración legibles por máquina en lugar de iniciar sesión físicamente y realizar las configuraciones. En Ansible, un libro de jugadas es uno de esos archivos de configuración.
Un libro de jugadas es un archivo en YAML que contiene una o más jugadas. ¿Qué es una obra de teatro? Un juego es una tarea ordenada que automatiza una tarea o un proceso en el host administrado, como implementar una aplicación, como un servidor web, o realizar configuraciones. Un libro de jugadas puede tener una o varias jugadas, cada una de las cuales realiza tareas diferentes.
Los juegos hacen uso de módulos que son funciones especiales para especificar los cambios requeridos en el host remoto. Cada módulo es especial y define una tarea particular.
Un archivo de libro de jugadas se guarda con un .yml o .yaml extensión de archivo.
Crear un archivo de libro de jugadas
Ahora vamos a crear un archivo de libro de jugadas. En esta demostración, crearemos un archivo de libro de jugadas llamado saludos.yml en la ruta del directorio de Ansible /etc/ansible como se muestra.
$ sudo vim /etc/ansible/greetings.yml
Agregue la siguiente configuración. Este es un libro de jugadas simple que imprime un mensaje en la salida estándar en el servidor remoto. Tome nota de la sangría de los módulos.
El archivo Ansible Playbook comienza con tres guiones ( — ) para indicar que es un archivo YAML. Los 'anfitriones' El parámetro especifica el host remoto o el grupo de hosts definido en el archivo de inventario, que de forma predeterminada se encuentra en /etc/ansible/hosts. Aquí, puesta en escena es el grupo de host para el cual el host remoto de IP 192.168.2.108 está definido.
El host remoto se define en el grupo de host denominado staging con las siguientes entradas.
[staging] 192.168.2.108 ansible_ssh_pass=xxxxxxxx ansible_ssh_user=jack
El ansible_ssh_pass especifica la contraseña SSH del usuario remoto mientras ansible_ssh_use especifica el nombre de usuario en el host remoto.
A continuación tenemos el nombre de la obra “Imprime un mensaje sencillo ” seguido de la depuración módulo que imprime el mensaje definido por el msg módulo.
Ejecutar el archivo del libro de jugadas
Para ejecutar el libro de jugadas, simplemente use el libro de jugadas ansible comando en la sintaxis proporcionada a continuación.
$ ansible-playbook /path/to/playbook-file
En nuestro caso, esto va a ser:
$ ansible-playbook /etc/ansible/greetings.yml
Durante la ejecución de la reproducción, Ansible primero imprime el nombre del grupo de hosts o del host remoto en el que se ejecutará la reproducción; en nuestro caso, la puesta en escena. grupo. Luego, Ansible recupera información sobre la obra, denominada Hechos. y finalmente realiza la acción especificada en el libro de jugadas. Aquí, se imprime el mensaje simple.
Tomemos otro ejemplo más de un archivo de guía llamado install_apache_and_git.yml Como se muestra abajo. Aquí tenemos dos jugadas. El primer juego instala el servidor web Apache mientras que el segundo juego instala git en el sistema remoto. El se convierte en:verdadero El parámetro ejecuta el comando como un usuario elevado o usuario sudo en el usuario remoto como se espera.
Cuando se ejecuta el libro de jugadas, todas las jugadas se enumeran en orden de ejecución desde la primera hasta la última. El libro de jugadas primero instala el servidor web Apache antes de instalar git. El –pedir-convertirse-aprobar La directiva pide al usuario sudo que lleve a cabo las tareas definidas en las obras.
Conclusión
Y así es como puede crear un archivo de libro de jugadas simple y ejecutarlo. Esperamos que esto haya proporcionado una comprensión de nivel básico de un archivo de playbook de Ansible, su estructura y cómo se usa para realizar tareas en hosts remotos.