Instalación en Linux

  • Para instalar Ansible simplemente actualice su sistema e instálelo mediante apt.
$ apt update -y
$ apt dist-upgrade --fix-broken --fix-missing -y
$ apt autoclean
$ apt autoremove
$ apt install ansible

Para añadirlo:

$ adduser ansible
$ adduser ansible sudo

Luego querrá configurar una clave de SSH para acceder a todos los servidores que desee mantener con scripting de Ansible. Tener en cuenta que precisará ejecutar los comandos como el usuario de ansible pero con el argumento -K para convertirse en usuario sudo en el nodo remoto.

Esto significa que necesitará añadir un archivo de sudoers para permitirlo además del usuario de Ansible en cada nodo cliente. Por esto es recomendable hacerlo en una plantilla de VM/CT antes de despliegues masivos.

  • Añada el usuario de Ansible a los nodos clientes en los que requiera.
$ adduser ansible
  • Añada el siguiente archivo de sudoers en los nodos que usará Ansible.
$ echo "ansible ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/ansible
$ chmod 0440 /etc/sudoers.d/ansible
$ visudo -c

Si desea restringir las capacidades de Ansible a un comando específico " “puede hacerlo desde el archivo sudoers, por ejemplo:

$ echo "ansible ALL=(ALL) NOPASSWD: /full/path/to/command" > /etc/sudoers.d/ansible

La salida del visudo debería ser la siguiente

/etc/sudoers: parsed OK
/etc/sudoers.d/README: parsed OK
/etc/sudoers.d/ansible: parsed OK

Now lets go back to the Ansible HOST node.

  • Generamos la clave par de SSH
$ ssh-keygen
# Generating public/private rsa key pair.
# Enter file in which to save the key (/home/ansible/.ssh/id_rsa): /home/ansible/.ssh/id_rsa
# Enter passphrase (empty for no passphrase): 
# Enter same passphrase again: 
# Your identification has been saved in /home/ansible/.ssh/id_rsa
# Your public key has been saved in /home/ansible/.ssh/id_rsa.pub
# The key fingerprint is:
# SHA256:dThXE01tCUb7l+gvsYGMvMEsWh1oW0ifBOYfHCxjsLE ansible@ct102-ansible
# The key's randomart image is:
# +---[RSA 3072]----+
# |     o.oo.  .+=++|
# |      *=.o.....o+|
# |     Eo.Bo= o. . |
# |       +.*.+  o .|
# |      . S.+ .. o.|
# |       + B o.o  .|
# |      o . o  .+  |
# |     .   .   o.  |
# |              .. |
# +----[SHA256]-----+
  • Y ahora la copiamos a los clientes
$ ssh-copy-id node02
$ ssh-copy-id node03
$ ssh-copy-id node04
  • Luego de esto podemos ir al archivo /etc/ansible/hosts.cfg y añadir los clientes
[proxmoxservers]
#node02
192.168.0.2

[linuxservers]

#node03
192.168.0.3

#node04
192.168.0.4

Para ejecutar un script:

$ ansible-playbook scriptname.yml -K

Si desea aplicar el script a un solo grupo de servidores, o especificar los grupos, puede hacerlo:

$ ansible-playbook scriptname.yml -K -l servergroup

Algunos Scripts de ejemplo: