Get it on Google Play
Mas de 21 años en el mundo del IT corporativo

Formación Ansible: Instalación y primeros pasos

23-06-2017
Ansible - Automation

Ansible – Automation

Ansible es una plataforma para automatización IT super simple para hacer que el proceso de ‘deploy’ sea super fácil para tus aplicaciones y sistemas. Con esta herramienta será muy fácil montar-te tus entornos de integración continua(CI) para tus aplicaciones Liferay(O lo que sea).

Instalación

En las últimas versiones de Ubuntu es tan fácil como instalarlo directamente desde tus repositorios:

sudo apt-get install ansible

Con una sola instrucción basta.

Configurando el inventario de servidores en Ansible

Ansible trabaja con un inventario de servidores. Este inventario se configura en el fichero(Créalo si no existe) ‘/etc/ansible/hosts’ y tiene la siguiente forma:

[desarrollo]
192.168.15.1
192.168.15.2

[preproduccion]
192.168.18.1
192.168.18.2

[produccion]
192.168.20.1
192.168.20.2

Tal como se ve es un listado de IPs que se agrupan, por ejemplo, aquí el grupo de servidores ‘desarrollo’ tiene los servidores 192.168.15.1 y 192.168.15.2.

Configurando los certificados de seguridad

Ansible se comunica con los otros servidores vía SSH y un certificado de seguridad. Ahora toca crear este certificado de seguridad:

ssh-keygen

Después tendremos que copia el certificado de seguridad a los distintos servidores:

ssh-copy-id 192.168.15.1

Esto nos pedirá el usuario SSH del servidor y copiará el certificado. Una vez todo instalado y configurado podemos probar de hacer un ping, a ver si funciona:

ansible all -m ping

Ejecutando comandos Ansible

Ahora que ya tenemos todo instalado y configurado ya podemos empezar a ejecutar comandos. La sintaxis de Ansible es la siguiente:

ansible  <servidor/grupo/pattern> -m <módulo> -a <argumentos>

De esta manera podemos ejecutar cantidad de cosas:

# Reiniciar el servicio httpd en los servidores de  preproduccion
ansible preproduccion -m service -a "name=httpd state=restarted"

# Eliminar el usuario 'albert' en todos los servidores
ansible all -m user -a "name=albert state=absent"

# Copiar el fichero 'hola.txt' a los servidores de 'preproduccion' y 'produccion'
ansible preproduccion:produccion -m copy -a "src=/home/hola.txt dest=/opt/hola.txt"

# Ejecutar '/bin/echo hello' en el servidor '192.168.15.1'. Si no ponemos módulo interpreta que el módulo es 'shell'
ansible 192.168.15.1 -m shell -a "/bin/echo hello"
ansible 192.168.15.1 -a "/bin/echo hello"

En fin, así de fácil es montarte un sistema automatizado con Ansible, tenéis la documentación completa aquí http://docs.ansible.com/ . Un sueño de la integración continua!!!! 😀 . Buen fin de semana.

Si te ha servido, por favor comparte

Interesado en formación Liferay?

 

Comments

2 Responses to “Formación Ansible: Instalación y primeros pasos”
  1. CESAR says:

    Hola Albert mira luego de instalar todo, he configurado el archivo “hosts” existen con los datos:

    [desarrollo]
    192.168.15.1 ansible_ssh_user=root
    192.168.15.2 ansible_ssh_user=root

    [preproduccion]
    192.168.18.1 ansible_ssh_user=root
    192.168.18.2 ansible_ssh_user=root

    [produccion]
    192.168.20.1 ansible_ssh_user=root
    192.168.20.2 ansible_ssh_user=root

    Pero has ejecutar comando: ansible all -m ping , me vota la respuesta de todos como: UNREACHABLE.

    Ejemplo:
    192.168.15.1 | UNREACHABLE! => {

    “changed”: false,
    “msg”: “Failed to connect to the host via ssh: Server version \”2.0.12\” uses unsafe RSA signature scheme; disabling use of RSA keys\r\nUnable to negotiate with 192.168.15.1 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1\r\n”,
    “unreachable”: true
    }

  2. David says:

    Cesar, has copiado las claves ssh a los distintos servidores?

Leave a Reply