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 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.
# 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.
Comentarios