Búsqueda de sitios web

Cómo instalar y configurar un nodo de control Ansible - Parte 2


En el tema anterior, aprenderá sobre la terminología básica y los conceptos básicos de Ansible. En este tema (Parte 2 de la serie Ansible), demostraremos cómo instalar y configurar un nodo de control Ansible en RHEL 8.

En nuestra configuración, usaremos 1 servidor Ansible y 2 nodos Linux remotos:

Control Node 1: RHEL 8 Server     IP: 192.168.0.108         Ansible Server
Managed Host 1: Debian 10         IP: 192.168.0.15          Webserver
Managed Host 2: CentOS 8          IP: 192.168.0.200	    Database Server

¿Qué es un nodo de control Ansible?

Un nodo de control es un servidor Linux que tiene Ansible instalado y se utiliza para administrar hosts o nodos remotos. Estos sistemas remotos se conocen como Hosts administrados o Nodos administrados.

En la configuración anterior, el nodo de control es el servidor RHEL 8 en el que se instalará Ansible y Debian 10 y CentOS 8< son los hosts administrados.

NOTA: Ansible solo se instala en el nodo de control y no en los hosts administrados.

Paso 1: instalar Python 3

De forma predeterminada, RHEL 8 viene con Python 3 y puede verificar la versión de Python instalada en su servidor ejecutando.

python3 -V

Si por alguna razón Python3 no está instalado, instálelo usando el siguiente comando dnf.

dnf install python3

Si existen varias versiones de Python en su sistema RHEL 8, puede configurar Python 3 como la versión predeterminada de Python. mediante la ejecución.

alternatives --set python /usr/bin/python3

Paso 2: habilite el repositorio oficial de RedHat

Después de instalar Python3, asegúrese de haber habilitado el repositorio oficial de RedHat para Ansible como se muestra a continuación.

subscription-manager repos --enable ansible-2.8-for-rhel-8-x86_64-rpms

NOTA: Para que el comando anterior funcione, asegúrese de haber registrado su RHEL 8 para la suscripción a RedHat.

Paso 3: Instale Ansible en RHEL 8

Para instalar Ansible en el nodo de control que es nuestro sistema RHEL 8, ejecute el comando.

dnf install ansible -y

Una vez instalado, puede verificar la versión de Ansible instalada ejecutando el comando.

ansible --version

Paso 4: crear un archivo de inventario de host estático

Hasta ahora, hemos instalado ansible con éxito en el Nodo de control que es nuestro servidor RHEL 8. Los nodos remotos que administrará el nodo de control deben definirse en un archivo llamado archivo inventario. El archivo de inventario es un archivo de texto sin formato que reside en el nodo de control y consta de los nombres de host o direcciones IP de los hosts remotos.

Un archivo de host estático es un archivo de texto sin formato que contiene una lista de nodos administrados definidos por sus direcciones IP o nombres de host. Creemos un archivo estático 'hosts' en el directorio /etc/ansible/.

vi /etc/ansible/hosts

A continuación, defina uno o varios grupos para sus hosts administrados. Tenemos 2 hosts administrados como se vio anteriormente en la configuración en la introducción de este tema. Desde la configuración, el archivo host estático se definirá de la siguiente manera:

[webserver]
192.168.0.15

[database_server]
192.168.0.200

Guarde y salga del archivo de inventario.

Para enumerar los hosts administrados, ejecute:

ansible all -i hosts --list-hosts

Hasta ahora, hemos logrado instalar Ansible en el nodo de control y definir los hosts administrados en un archivo Host estático que reside en el nodo de control.

A continuación vamos a ver cómo podemos gestionar o controlar nuestros hosts remotos o gestionados.

Paso 5: configurar el nodo de control de Ansible para conectarse con los nodos remotos

Para que el nodo de control Ansible (RHEL 8) administre los sistemas host remotos (Debian 10 y CentOS 8) Necesitamos configurar la autenticación SSH sin contraseña para los hosts remotos. Para que esto suceda, debe generar un par de claves SSH y guardar la clave pública en los nodos remotos.

En el nodo de control de Ansible, inicie sesión como usuario normal y genere el par de claves SSH ejecutando el comando.

su tecmint
ssh-keygen

A continuación, copie la clave ssh pública en los nodos remotos como se muestra.

ssh-copy-id [email 	        (For Debian 10 node)
ssh-copy-id [email 	        (For CentOS 8 node)

Después de agregar las claves públicas a todos nuestros nodos remotos, emitiremos un comando ping desde el nodo de Ansible Control para asegurarnos de que sean accesibles.

ansible -m ping all

En el resultado anterior, podemos ver claramente que el comando ping fue exitoso y pudimos probar la accesibilidad a todos los nodos.

Conclusión

En esta guía, instalamos y configuramos con éxito Ansible en el nodo de control que ejecuta RHEL 8. Posteriormente definimos los hosts remotos en un archivo de host estático y configuramos el nodo de control para conectar y controlar los hosts administrados configurando la autenticación SSH sin contraseña.