GNU/Linux >> Tutoriales Linux >  >> Linux

Guía de inicio rápido de Ansible para administradores de sistemas Linux

En este artículo, analizo los requisitos previos para instalar Ansible, la instalación de Ansible con el servidor Satellite, la configuración de Ansible para la automatización, la introducción a los libros de jugadas, los archivos de inventario y un caso de uso de Ansible. Consulte el primer artículo, Desmitificación de Ansible para administradores de sistemas de Linux, si aún no lo ha hecho.

Requisitos previos para instalar Ansible

Para utilizar Ansible en su entorno, debe configurar un nodo de gestión (también llamado nodo de control ) donde instalará Ansible. Puede instalar Ansible en cualquier máquina con Python 2 (versión 2.7) o Python 3 (versiones 3.5 y posteriores). Con RHEL 7, tenemos Python 2.7 instalado de forma predeterminada y con RHEL 8, tenemos Python 3.6 de forma predeterminada. Para usar todos los módulos de Ansible, también debe instalar Python en los nodos administrados. De forma predeterminada, Ansible usa SSH para comunicarse con los nodos administrados. Los nodos administrados también pueden usar SFTP o SCP para la comunicación, y esto se puede modificar en el archivo de configuración de Ansible (ansible.cfg ).

Si utiliza RHEL Satellite para instalar Ansible en un sistema RHEL 8, asegúrese de agregar los repositorios de Red Hat Ansible Engine 2.9 para RHEL 8 x86_64 (RPM) desde la GUI de Satellite y sincronice los repositorios de CDN con Satellite. En el nodo de control, debe registrarse con el servidor de Satellite, habilitar las herramientas de Satellite y habilitar el repositorio de Ansible mediante los siguientes comandos:

# subscription-manager repos --enable satellite-tools-6.6-for-rhel-8-x86_64-rpms
Repository' satellite-tools-6.6-for-rhel-8-x86_64-rpms' is enabled for this system.

# subscription-manager repos --enable ansible-2.9-for-rhel-8-x86_64-rpms
Repository' ansible-2.9-for-rhel-8-x86_64-rpms' is enabled for this system.

Instalación de Ansible en RHEL

Para instalar Ansible en el nodo de control de RHEL 8 después de registrarse con el servidor Satellite, ejecute el comando yum install ansible . Este comando instala seis paquetes:

  1. Instalar Ansible desde el repositorio de Ansible:
    1. Ansible
  2. Instalar dependencias:
    1. sshpass
    2. Python3-markupsafe
    3. Python3-jinja2
    4. Python3-babel
  3. Instalar dependencia débil:
    1. Python3-jmespath

Después de la instalación, ejecute ansible --version Comando para verificar la versión de Ansible instalada.

# ansible --version

ansible 2.9.6

 config file = /etc/ansible/ansible.cfg

 configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']

 ansible python module location = /usr/local/lib/python3.6/site-packages/ansible-2.9.6-py3.6.egg/ansible

 executable location = /usr/local/bin/ansible

 python version = 3.6.8 (default, Oct 11 2019, 15:04:54) [GCC 8.3.1 20190507 (Red Hat 8.3.1-4)]

Después de la instalación, puede realizar cambios en la configuración predeterminada de Ansible modificando los parámetros en ansible.cfg archivo.

[ También puede disfrutar leyendo: Renovando mi emoción en el trabajo con Ansible ]

Configuración de Ansible para la automatización

Ahora que Ansible está instalado, debe configurar la autenticación basada en clave SSH (que usa criptografía asimétrica) desde el nodo de control hasta los nodos administrados para que Ansible funcione sin problemas. Deberá generar un par de claves en su nodo de control y transferir la clave pública a los nodos administrados. Usa el comando ssh-keygen para generar el par de claves. Las claves se almacenan en su directorio de inicio dentro de .ssh carpeta. Las claves predeterminadas se denominan id_rsa.pub (clave pública) y id_rsa (llave privada). Para habilitar la autenticación basada en clave SSH en los nodos administrados, ejecute el siguiente comando en su nodo de control:

# ssh-copy-id <target user>@<IP address/Hostname of the managed node>

Tenga en cuenta que esto requerirá una contraseña de un solo uso para el usuario de destino en el nodo administrado. El comando ssh-copy-id copiará la clave pública del nodo de control en authorized_keys archivo en los nodos administrados.

Una vez configurado, puede agregar los nodos remotos a un archivo de inventario y realizar la prueba de ping con el siguiente comando ad-hoc de Ansible:

# ansible all -m ping -i <inventory-file>

Más información sobre libros de jugadas

Los libros de jugadas son los archivos donde se escriben las funciones de Ansible. Los libros de jugadas están escritos en formato YAML. YAML significa Otro lenguaje de marcado más. Los libros de jugadas son una de las características principales de Ansible y le dicen a Ansible qué ejecutar. Son como una lista de tareas para Ansible que contiene una serie de tareas. Los playbooks son los componentes básicos para todos los casos de uso de Ansible. Puede crear playbooks de Ansible modulares independientes para cada acción. Puede incorporar estos libros de jugadas modulares en un único libro de jugadas maestro mediante el módulo import_playbook . Esto garantiza la reutilización de los playbooks. Puede usar variables en el libro de jugadas y pasar estas variables desde el inventario de Ansible, los archivos incluidos y durante el tiempo de ejecución. Algunas de las características clave de un libro de jugadas de Ansible incluyen:

  • Capacidad para ejecutar tareas como diferentes usuarios según el convertirse método
  • Controle dónde ejecutar cada tarea en función de los hosts de su inventario
  • Especifique condicionales y bucles en su código

Ejemplo:

Más información sobre el inventario

Inventario es la lista de nodos que Ansible puede administrar. Puede especificar hosts administrados individuales o crear un grupo de hosts en el archivo de inventario. Para cada host administrado, puede asignar variables que puede usar el libro de jugadas mientras ejecuta tareas en ese host en particular. El archivo de inventario predeterminado es /etc/ansible/hosts , pero se recomienda que cree su propio archivo de inventario y lo llame durante la ejecución del libro de jugadas usando -i opción de comando. Los archivos de inventario pueden estar en formato INI o YAML. Puede mantener un archivo de inventario estático o una lista dinámica de hosts.

Ejemplo:

# cat hosts-b2b

[webservers]
b2bwebprod1 urlpath=https://b2bprod.abc.xyz
b2bwebprod2
b2bwebprod3

[appservers]
b2bappprod1
b2bappprod2
b2bappprod3
b2bappprod4
b2bappprod5

[dbservers]
b2bmasterdb
b2bslavedb

Caso de uso de Ansible

Exploremos un caso de uso de Ansible para el monitoreo del sistema. Podemos crear playbooks para varias tareas de monitoreo relacionadas con el administrador de sistemas, que incluyen:

  • Supervisión del uso del sistema de archivos y alerta por correo electrónico si se utiliza más del 90 % del espacio en disco
  • Disponibilidad de aplicaciones y puertos
  • Disponibilidad de la base de datos conectando y consultando la base de datos
  • Disponibilidad de URL mediante el uri módulo y alertas por correo electrónico si el código de retorno es mayor que 200. También puede usar las funciones de reintentos y demoras en el uri módulo para estar doblemente seguro
  • Disponibilidad del servicio, informe si el servicio está caído e intente reiniciarlo
  • Verifique las versiones de los componentes para mantener un inventario actualizado
  • Supervisar el tiempo de actividad del sistema y enviar alertas por correo electrónico si no se puede acceder a un sistema

[ ¿Necesita más información sobre Ansible? Realice un curso gratuito de descripción técnica de Red Hat. Ansible Essentials:descripción técnica de la simplicidad en la automatización. ] 

Resumir

Este artículo le brinda una descripción general de la instalación de Ansible, la configuración de Ansible, la creación de libros de jugadas y la administración del inventario con ejemplos. Estén atentos para obtener más artículos sobre la automatización con Ansible.


Linux
  1. Una guía de la terminal de Linux para principiantes

  2. ¿Qué es Linux? Una guía para usuarios no técnicos

  3. Desmitificando Ansible para administradores de sistemas Linux

  4. 5 consejos avanzados de rsync para administradores de sistemas Linux

  5. 80 herramientas de monitoreo de Linux para administradores de sistemas

¿Qué es Ubuntu? Una guía rápida para principiantes

30 ejercicios de permisos de Linux para administradores de sistemas

40 comandos de red Linux útiles para administradores de sistemas modernos

Guía para configurar el servidor SFTP en Linux

Una guía práctica para el comando chroot en Linux

Guía de instalación paso a paso de Bugzilla para Linux