Vamos a instalar Ansible tanto para versiones basadas en CentOS y Debian, Ubuntu, Raspbian,…
Para la instalación en CentOS:
yum -y install epel-release
yum -y install ansible nmap libselinux-python
ansible --version
Para la instalación en Debian:
apt-get update
apt-get upgrade
apt install ansible nmap
ansible --version
En este punto, ya tenemos Ansible instalado en el sistema y podemos deshabilitar ciertos parámetros aunque si no estamos familiarizados con la plataforma no se recomienda para evitar problemas en el momento de hacer debug.
sed -i 's/#system_warnings = True/system_warnings = False/g' /etc/ansible/ansible.cfg
sed -i 's/# command_warnings = False/command_warnings = False/g' /etc/ansible/ansible.cfg
sed -i 's/#deprecation_warnings = True/deprecation_warnings = False/g' /etc/ansible/ansible.cfg
Ahora, realizaremos una configuración básica para poder conectar con la infraestructura a administrar.
Crearemos una definición a nivel de hosts. Como recomendación, si tenemos una infraestructura pequeña o bien controlada mejor crear tags (grupos). Como ejemplo:
cat <<'EOF' > /etc/ansible/hosts
[RPI]
10.0.1.71
10.0.1.72
10.0.1.73
[DEBIAN]
10.0.1.74
[CENTOS]
10.0.1.75
[RHEL]
10.0.1.76
EOF
Una vez definido será necesario copiar las claves privadas. De Ansible hacia los respectivos equipos anteriores
En este ejemplo, definimos como variable el host destino (10.0.1.71)
HOST_DST='10.0.1.71'
ssh-keygen -t rsa
cd
ssh ${HOST_DST} mkdir -p .ssh
cat .ssh/id_rsa.pub | ssh ${HOST_DST} 'cat >> .ssh/authorized_keys'
Esta acción permitirá conectar, mediante intercambio de claves, acceder de Ansible al equipo remoto sin password.
Ya está preparado el entorno. Ahora, podemos listar los equipos que hemos configurado anteriormente:
ansible --list-hosts all
o bien listar únicamente las que tenemos agrupados en uno grupo en concreto:
ansible --list-hosts LINUX