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


En el tema anterior, aprenderá sobre terminologías y conceptos básicos de Ansible. En este tema (Parte 2 de la serie Ansible), demostraremos cómo puede 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

Un nodo de control es un servidor Linux que tiene Ansible instalado y se usa 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 ejecutando.

# 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 funcione el comando anterior, asegúrese de haber registrado su suscripción RHEL 8 para 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: creación de 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 de 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 un grupo o 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 de 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 de host estático que reside en el nodo de control.

A continuación, veremos cómo podemos administrar o controlar nuestros hosts remotos o administrados.

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

Para que el nodo de control de Ansible (RHEL 8) administre los sistemas de 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 a los nodos remotos como se muestra.

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

Habiendo agregado las claves públicas a todos nuestros nodos remotos, vamos a emitir un comando ping desde el nodo de Ansible Control para asegurarnos de que estén accesibles.

$ ansible -m ping all

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

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