Cómo instalar y configurar Ansible en Ubuntu 18.04 LTS

Ansible es un software gratuito y de código abierto que puede utilizarse para automatizar el aprovisionamiento de software, la gestión de la configuración y el despliegue de aplicaciones. A diferencia de Puppet o Chef, no tienes que configurar un entorno cliente-servidor antes de utilizar Ansible. Puedes gestionar varios hosts desde una ubicación central. Esta herramienta es muy sencilla pero potente para automatizar complejos entornos de aplicaciones informáticas de varios niveles. Ansible se comunica a través de canales SSH normales para recuperar información de máquinas remotas y realizar tareas.

En este tutorial, aprenderemos a instalar y utilizar Ansible en un servidor Ubuntu 18.04.

Requisitos

  • Dos sistemas de servidores Ubuntu 18.04 con el servidor OpenSSH instalado.
  • Una dirección IP estática 192.168.0.101 configurada en el sistema servidor y 192.168.0.104 configurada en el sistema cliente.
  • Se configura un usuario no root con privilegios sudo en ambos sistemas.

Cómo empezar

Antes de empezar, actualiza tu sistema con la última versión con el siguiente comando:

sudo apt-get update -y
sudo apt-get upgrade -y

Una vez que tu sistema esté actualizado, reinicia tu sistema para aplicar los cambios.

Instalar y configurar Ansible

Por defecto, la última versión de Ansible no está disponible en el repositorio por defecto de Ubuntu 18.04. Así que tendrás que añadir el PPA de Ansible a tu servidor. Puedes hacerlo ejecutando el siguiente comando:

sudo apt-add-repository ppa:ansible/ansible

A continuación, actualiza el repositorio e instala Ansible con el siguiente comando:

sudo apt-get update -y
sudo apt-get install ansible -y

Una vez completada la instalación, puedes comprobar la versión de Ansible con el siguiente comando

sudo ansible --version

Salida:

ansible 2.7.1
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.15rc1 (default, Nov 12 2018, 14:31:15) [GCC 7.3.0]

A continuación, tendrás que definir el sistema cliente que quieres gestionar en el archivo de hosts de Ansible. Puedes hacerlo editando el archivo /etc/ansible/hosts:

sudo nano /etc/ansible/hosts

Añade las siguientes líneas:

[Client]
node1 ansible_ssh_host=192.168.0.104

Guarda y cierra el archivo, cuando hayas terminado.

Configurar las claves SSH para el sistema cliente

Ansible utiliza SSH para comunicarse con el host Cliente. Así que tendrás que configurar la autenticación ssh basada en claves para el host Cliente.

Primero, genera un par de claves SSH con el siguiente comando:

ssh-keygen

Salida:

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:bTVjTCKqxD8rnIw7/6mB6ZH9cnhzzOFg+/+x4clSOow [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|        . . .    |
|   .   . . +     |
|    o .     *    |
|   . o   . o o   |
|    . o S o      |
|   O .oo..  .    |
|  * Bo.* + oo    |
| ..oo+=.E =o =   |
|  ooo*++...+*    |
+----[SHA256]-----+

A continuación, copia esta clave pública en el sistema Cliente con el siguiente comando:

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

Salida:

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

Trabajar con Ansible

Ahora Ansible está instalado y configurado. Es hora de probar Ansible.

En el servidor de Ansible, intenta hacer ping a tu sistema Cliente utilizando Ansible con el siguiente comando.

ansible -m ping Client

Resultado:

node1 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

Si tienes varios clientes configurados en tu archivo de hosts de Ansible. Entonces, puedes hacer ping a todos los sistemas Cliente con el siguiente comando:

ansible -m ping all

Puedes comprobar el estado del servidor web Apache en el sistema Cliente con el siguiente comando:

ansible -m shell -a 'service apache2 status' Client

Salida:

node1 | CHANGED | rc=0 >>
 * apache2 is running

Para comprobar el tamaño de la partición del sistema Cliente, ejecuta el siguiente comando:

ansible -m shell -a 'df -h' Client

Salida:

node1 | CHANGED | rc=0 >>
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       138G   48G   83G  37% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            1.9G  4.0K  1.9G   1% /dev
tmpfs           384M  1.2M  383M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            1.9G   67M  1.9G   4% /run/shm
none            100M   36K  100M   1% /run/user
/dev/sda5       225G   35G  180G  16% /Data

Enhorabuena! has instalado y configurado correctamente Ansible en el servidor Ubuntu 18.04. Ahora puedes utilizar fácilmente Ansible para ejecutar tareas sencillas de forma remota.

También te podría gustar...