Ansible se utiliza para gestionar y administrar múltiples servidores desde un ordenador central. Es una herramienta de gestión de servidores. Ansible no necesita ninguna configuración en el lado del servidor como Chef o Puppet. Sólo tienes que instalar Ansible en tu ordenador y gestionar o administrar los servidores a través de SSH. Es muy simple y fácil de usar. En este artículo, voy a mostrarte cómo instalar y utilizar Ansible en CentOS 8. Así que, vamos a empezar.

Instalación de Ansible:

Ansible está disponible en el repositorio EPEL de CentOS 8. Por lo tanto, usted puede instalar fácilmente Ansible en CentOS 8.

Primero, actualice la caché del repositorio de paquetes DNF con el siguiente comando:

$ sudo dnf makecache

Ahora, para habilitar el repositorio EPEL, instale el paquete epel-release con el siguiente comando:

$ sudo dnf install epel-release

Para confirmar la instalación, pulse Y y luego pulse <Enter>.

El paquete EPEL-release debería estar instalado y el repositorio EPEL debería estar habilitado.

Ahora, actualice de nuevo la caché del repositorio de paquetes DNF con el siguiente comando:

$ sudo dnf makecache

Ahora, instale Ansible con el siguiente comando:

$ sudo dnf install ansible

Para confirmar la instalación, presiona Y y luego presiona <Enter>.

DNF debería empezar a descargar todos los paquetes necesarios de Internet.

Es posible que se le pida que acepte la clave GPG del repositorio EPEL. Presione Y y luego presione <Enter> para aceptarla.

DNF debería comenzar a instalar todos los paquetes descargados.

En este punto, Ansible debería estar instalado.

Ahora, ejecuta el siguiente comando:

$ ansible –versión

Como puedes ver, estoy ejecutando Ansible 2.9.3 y está funcionando muy bien.

Configuración de servidores para Ansible:

Para gestionar o administrar servidores con Ansible, debe tener el servidor SSH instalado y funcionando en los servidores. El puerto SSH de los servidores debe estar abierto y los servidores deben ser accesibles desde el host de Ansible. Ese es el único requisito de usar Ansible.

En este artículo, voy a utilizar 4 máquinas virtuales (VMs) (2 Ubuntu Server 18.04 LTS VMs y 2 Debian 10 VMs) para demostrar los fundamentos de la gestión y administración de servidores Ansible.

Las 4 VMs son:

linuxhint-f1a46 – 192.168.20.161
linuxhint-8ee7a – 192.168.20.166
linuxhint-s40 – 192.168.20.171
linuxhint-s41- 192.168.20.170

Puede utilizar las direcciones IP de los servidores para gestionarlos o administrarlos con Ansible. También puede utilizar los nombres DNS de los servidores también.

En este artículo, voy a utilizar el archivo /etc/hosts para la resolución DNS de las direcciones IP de las VMs.

Si quieres seguir adelante, abre tu archivo /etc/hosts con el editor de texto vi de la siguiente manera:

$ sudo vi /etc/hosts

Ahora, añade las líneas marcadas en la captura de pantalla de abajo y guarda el archivo.

Ahora, genere una clave SSH en su host CentOS 8 Ansible de la siguiente manera:

$ ssh-keygen

Pulse <Intro>.

Pulse <Intro>.

Pulsa <Intro>.

La clave SSH debería generarse.

Ahora, tienes que subir la clave SSH a todos los servidores que quieras gestionar con Ansible.

Para copiar la clave SSH al servidor vm1.linuxhint.local, ejecute el siguiente comando:

$ ssh-copy-id [email protected]

Ahora, escriba yes y luego presione <Enter>.

Ahora, escriba la contraseña de inicio de sesión de la vm1.linuxhint.local y pulse <Intro>.

La clave SSH debería copiarse.

Haga lo mismo para el servidor vm2.linuxhint.local, vm3.linuxhint.local y vm4.linuxhint.local.

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

Una vez que hayas copiado la clave SSH en las VMs, usted debe ser capaz de SSH en él sin ninguna contraseña como se puede ver en la captura de pantalla a continuación.

Ahora, ejecute el siguiente comando en cada servidor para permitir el acceso sudo sin contraseña para el usuario de inicio de sesión. Esto es necesario para que Ansible ejecute cualquier comando de root.

$ echo «$(whoami) ALL=(ALL) NOPASSWD:ALL» | sudo tee /etc/sudoers.d/$(whoami)

Todos los servidores están ahora listos para ser configurados o gestionados desde Ansible.

Usando Ansible:

Ansible mantiene una lista de todos los hosts que gestiona en un archivo llamado archivo de inventario. El archivo de inventario de Ansible es un simple archivo de texto plano.

Creemos primero un nuevo directorio de proyecto Ansible ~/ansible/, luego crearemos nuestro archivo de inventario.

$ mkdir ~/ansible

Ahora, navegue al directorio ~/ansible.

$ cd ~/ansible

Ahora, cree un archivo de inventario de Ansible como sigue. Usted puede llamar a este archivo cualquier cosa. Lo llamaré hosts.

$ vi hosts

Ahora, puedes añadir tus servidores de la siguiente manera. Aquí, la opción ansible_user se utiliza para definir el usuario que Ansible utilizará para ejecutar comandos en estos servidores. Por lo general, es el usuario de inicio de sesión del servidor.

También puede mezclar las direcciones IP y los nombres DNS de los servidores en el archivo de inventario también.

También puede agrupar los servidores. Aquí, tengo 2 grupos, webserver y dbserver.

En el grupo webserver, he añadido los servidores vm1 y vm2. En el grupo dbserver, he añadido los servidores vm3 y vm4.

Una vez creado el archivo de inventario, se puede utilizar el archivo de inventario utilizando la opción -i de Ansible.

Puede listar todos los hosts del archivo de inventario como sigue:

$ ansible -i hosts –list-hosts all

Puede comprobar si todos los hosts están activos como sigue:

$ ansible -i hosts –list-hosts -m ping all

Como puedes ver, todos los hosts están activos.

También puede hacer ping a todos los hosts de un mismo grupo.

$ ansible -i hosts –list-hosts -m ping webserver

Puedes ejecutar comandos de shell usando Ansible como sigue:

$ ansible -i hosts -m shell -a ‘comando’ <todos|nombredelgrupo>

También puede ejecutar comandos de shell (con privilegios sudo) de la siguiente manera.

$ ansible -i hosts -b –become-method=sudo -m shell -a ‘command’ &lt;all
|groupName&gt;

Por ejemplo, puede actualizar la caché del repositorio de paquetes de APT en los hosts del grupo webserver utilizando Ansible de la siguiente manera:

$ ansible -i hosts -b –become-method=sudo -m shell -a ‘apt update’ webserver

Como puede ver, la caché del repositorio de paquetes de APT se actualiza para todos los hosts del grupo webserver.

Intentemos instalar el servidor web Apache 2 en todos los hosts del grupo webserver.

$ ansible -i hosts -b –become-method=sudo -m shell -a
‘apt install -y apache2’ webserver

El servidor web Apache debería estar instalado en todos los hosts del grupo webserver.

Como puede ver, el servidor web Apache está funcionando en todos los hosts del grupo webserver.

$ ansible -i hosts -b –become-method=sudo -m shell -a ‘curl -sI
http://localhost’ webserver

De la misma manera, se puede ejecutar cualquier comando en todos los hosts del grupo dbserver.

$ ansible -i hosts -m shell -a ‘lsb_release -a’ dbserver

También puedes usar Ansible Playbook para gestionar tus servidores más fácilmente. Ansible Playbook está fuera del alcance de este artículo. Lea la documentación de Ansible para obtener más información sobre Ansible Playbook.

Gracias por leer este artículo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.