En el siguiente artículo veremos una introducción de conceptos básicos de Ansible. Hablaremos sobre la configuración básica de Ansible para el buen funcionamiento.

Introducción

Una vez ya tenemos Ansible instalado, el primer paso será definir los servidores que queremos administrar, para ello editaremos el fichero /etc/ansible/hosts.

💡
En caso de que este fichero no incluya ningún nodo, solo localhost estará disponible.

En los nodos añadidos en este fichero la conexión a ellos se realizará a través de SSH. Por ejemplo, a continuación vemos un ejemplo con tres nodos:

nodo1.tutos.top
nodo2.tutos.top

Para poder listar los nodos definidos, utilizaremos el siguiente comando:

# ansible --list-hosts all
  hosts (2):
    nodo1.tutos.top
    nodo2.tutos.top

Configuración del acceso SSH

Como hemos mencionado anteriormente, la conexión a estos nodos se hace a través de SSH y para ello es necesario tener acceso utilizando llaves SSH.

Por lo tanto deberemos de copiar la llave pública del usuario que ejecute ansible dentro de las claves autorizadas de los servidores listados anteriormente.

Para copiar la llave SSH podemos utilizar ssh-copy-id:

ssh-copy-id node1.tutos.top

Nos pedirá el acceso por SSH y al final aparecerá el siguiente mensaje:

Number of key(s) added: 1

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

Comprobar conexión a los servidores

Ahora podremos comprobar la conexión de los servidores definidos con el siguiente comando (que más adelante explicaremos con más detalle).

ansible all -m ping

Y nos mostrará el siguiente resultado:

node1.tutos.top | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}
node2.tutos.top | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: Host key verification failed.",
    "unreachable": true
}

Como podemos observar, en el Node1 la respuesta es SUCCESS y por lo tanto llega a realizar el ping correctamente. En cambio, para Node2 la respuesta es UNREACHABLE y nos indica con un mensaje que no tiene la llave SSH.

💡
Deberemos de copiar la llave SSH a todos los servidores que necesitamos acceder
# ansible all -m ping

node1.tutos.top | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}

node2.tutos.top | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}

Y listo, ya tenemos Ansible preparado para todo lo que iremos aprendiendo en el resto de tutoriales.

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación