Maneja tu servidor con Ansible

Hace muchos años, antes de Ansible, la automatización se hacia casi exclusivamente con lenguajes como Perl en conjunto con aplicaciones como Expect. Hoy en día, tecnologías como Ansible, nos permiten administrar un servidor de forma segura y rápida, en este breve tutorial vamos a explorar Ansible.

Antes que nada, vamos a preparar nuestro equipo con acceso sin contraseña hacia el nodo o servidor de destino, esto puede ser una practica segura o insegura dependiendo de su infraestructura, pero para este articulo sera mas que suficiente:

Generaremos una llave local la cual enviaremos al servidor que deseamos administrar:

ssh-keygen -t rsa -b 4096 -C "tu@email.com"

Ahora copiaremos la llave generada al servidor remoto:

ssh-copy-id usuario@server_ip_address

En el caso de utilizar otro puerto, sugiero leer el manual de ssh-copy-id para saber como especificarlo.

Podemos verificar el acceso al servidor mediante ssh:

ssh usuario@server_ip_address

Ahora, en nuestra computadora, dependiendo del tipo de distribución instalaremos Ansible:

apt install ansible

Editaremos el archivo /etc/ansible/hosts y agregaremos las siguientes lineas:

[servers]
server_ip_address ansible_ssh_user=usuario ansible_ssh_port=22

Guardamos el archivo y luego simplemente ejecutamos el siguiente comando:

:~$ ansible -m ping servers
server_ip_address | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
:~$ 

Nota: Para agrupar hosts en Ansible utilizamos square brakets y podemos tener distintos grupos, ejemplo:

[webservers]
server_ip_address1 ansible_ssh_user=usuario ansible_ssh_port=22
server_ip_address2 ansible_ssh_user=usuario ansible_ssh_port=22

[dbservers]
server_ip_address1 ansible_ssh_user=usuario ansible_ssh_port=22
server_ip_address2 ansible_ssh_user=usuario ansible_ssh_port=22

Y con esto finalizamos la primera parte de mis artículos relacionados con Ansible.