Cómo utilizar los libros de jugadas de Ansible para automatizar tareas complejas en varios servidores remotos-Parte 2

Apache se inició en este host a través de Ansible

Cómo utilizar los libros de jugadas de Ansible para automatizar tareas complejas en varios servidores remotos-Parte 2

En el artículo anterior de esta serie de Ansible, explicamos que Ansible es una herramienta sin agentes que le permite administrar de manera rápida y eficiente varias máquinas (también conocidas como nodos, y realizar implementaciones en ellas también) desde un solo sistema. .

 Utilice los manuales de Ansible para automatizar tareas complejas en Linux Use Ansible Playbooks para automatizar tareas complejas en Linux Use Ansible Playbooks para automatizar tareas complejas en Linux-Parte 2

Después de instalar el software en la máquina controladora, crear las claves para el inicio de sesión sin contraseña y copiarlas en los nodos, es hora de aprender a optimizar el proceso de administración de dichos sistemas remotos usando Ansible.

Ansible Testing Environment

A lo largo de este artículo, así como en el siguiente, utilizará el siguiente entorno de prueba. Todos los hosts son cajas CentOS 7.

Máquina controladora (donde está instalado Ansible): 192.168.0.19. Nodo1: 192.168.0.29. Nodo2 : 192.168.0.30.

Además, tenga en cuenta que ambos nodos se han agregado en la sección de servidores web del archivo local /etc/ansible/hosts.

 Ansible Host File  Ancho de archivo de host Ansible Archivo de host Ansible

Dicho esto, comencemos con el tema en cuestión.

Presentación de Ansible Playbooks

freestar.config.enabled_slots.push (LocationName: “tecmint_incontent”, slotI d: “tecmint_incontent”);

Como se describe en la guía anterior, puede usar la utilidad ansible. para ejecutar comandos en nodos remotos de la siguiente manera:

# ansible-a “/bin/hostnamectl–static “servidores web  Ansible: Ejecutar comandos en Linux remoto  Ansible: Ejecutar comandos en Linux remoto Ansible: ejecutar comandos en Linux remoto

En el ejemplo anterior, ejecutamos hostnamectl–static en node1. y node2. No toma mucho tiempo para que uno se dé cuenta de que este método de ejecutar tareas en computadoras remotas funciona bien para comandos cortos, pero puede volverse rápidamente engorroso o complicado para tareas más complejas que requieren más parámetros de configuración bien estructurados o interacciones con otros servicios

Por ejemplo, instalar y configurar WordPress. en varios hosts (que trataremos en el próximo artículo de esta serie). Aquí es donde entran en escena los Playbooks.

En pocas palabras, los Playbooks. son archivos de texto sin formato escritos en formato YAML. y contener una lista con elementos con uno o más pares clave/valor (también conocido como “ hash. o “ diccionario. ).

Dentro de cada Playbook encontrarás uno o más grupos de hosts (cada uno de estos grupos también se denomina juego. donde se realizarán las tareas deseadas.

Un ejemplo de los documentos oficiales nos ayudará a ilustrar:

1.. hosts. esta es una lista de máquinas (según /etc/ansible/hosts. donde se realizarán las siguientes tareas.

2.. remote_user. cuenta remota que se utilizará para realizar las tareas.

3.. vars. variables utilizadas para modificar el comportamiento de los sistemas remotos.

4 .. las tareas se ejecutan en orden, una a la vez, en todas las máquinas que coinciden con los hosts. Dentro de una obra, todos los hosts obtendrán las mismas directivas de tareas.

Si necesita ejecutar un conjunto diferente de tareas asociadas para un anfitrión específico, cree otra jugada en el Playbook. actual (en otras palabras, el propósito de una jugada es mapear una selección específica de hosts para tareas bien definidas).

En ese caso, comience una nueva jugada agregando la directiva hosts en la parte inferior y comenzando de nuevo:

—-hosts: webservers usuario_remoto: root vars: variable1: valor1 variable2: valor2 usuario_remoto : tareas raíz:-nombre: descripción de la tarea1 tarea1: parámetro1 = valor_para_parámetro1 parámetro2 = valor_para_parámetro2-nombre: descripción de la tarea1 tarea2: parámetro1 = valor_para_parámetro1 parámetro2 = valor_para_parámetro2 controladores:-nombre: descripción del controlador 1 servicio: nombre = nombre_del_servicio estado = estado_servicio-hosts: dbservers remote_user: root vars: variable1: value1 variable2: value2…

5.. Los controladores son acciones que se activan al final de la sección de tareas en cada juego, y se utilizan principalmente para reiniciar servicios o desencadenar reinicios en los sistemas remotos.

# mkdir/etc/ansible/playbooks

Y un archivo llamado apache.yml. dentro de allí con el siguiente contenido:

—-h osts: webservers vars: http_port: 80 max_clients: 200 remote_user: root tasks:-nombre: asegúrese de que apache tenga la última versión yum: pkg = httpd state = latest-nombre: reemplace el archivo index.html predeterminado copy: src =/static_files/index.html dest =/var/www/html/mode = 0644 notificar:-reiniciar apache-nombre: asegurarse de que apache se esté ejecutando (y habilitarlo en el arranque) servicio: nombre = httpd estado = iniciado habilitado = sí controladores:-nombre: reiniciar el servicio apache: nombre = httpd estado = reiniciado

En segundo lugar, cree un directorio/archivos_estáticos:

# mkdir/archivos_estáticos

donde almacenará el archivo index.html. personalizado:

Apache se inició en este host a través de Ansible

Presentado por Tecmint.com