Il costo della complessità: Ansible AWX
5 Maggio 2024
Installare Ansible
Ansible è distribuito come modulo Python installabile tramite PIP. L’installazione è banale, ma merita alcune considerazioni.
Generalmente il automation host, ossia il sistema dal quale partono tutti gli script di automazione, è uno dei sistemi più critici all’interno di un’infrastruttura. può accedere a tutti i sistemi che necessitano di essere automatizzati e spesso, per praticità, contiene le credenziali di tali dispositivi. Le credenziali sono salvate in specifici password manager, ma molto più spesso si trovano in chiaro.
Per semplicità e per chiarezza i playbook più semplici contengono le credenziali dei dispositivi: essi sono pensati per concentrarsi sulla parte di automazione e non sulla sicurezza del sistema, che sarà discussa su specifici articoli.
Possiamo però iniziare con una best practice: creare un ambiente Python dedicato ad Ansible, tracciando le versioni dei pacchetti installati. Ansible infatti, come tanti altri software, è in continua evoluzione e i playbook scritti oggi potrebbero non funzionare correttamente con le versioni future.
La versione di Ansible che useremo richiede Python 3.9, che non è installabile tramite APT su Ubuntu Linux 20. Dobbiamo quindi installarlo manualmente, da sorgenti:
cd /usr/src
wget https://www.python.org/ftp/python/3.9.16/Python-3.10.8.tgz
tar xzf Python-3.10.8.tgz
cd Python-3.10.8/
./configure --enable-optimizations
make -j 4
sudo make altinstall
Nel DevNetOps course material, è disponibile il file packages.txt
aggiornato, utilizzabile per installare le dipendenze necessarie per tutti i laboratori disponibili.
sudo apt-get install -y < packages.txt
In generale è preferibile avere un utente dedicato all’utilizzo di Ansible, in modo che il suo ambiente sia configurato e affidabile. Creiamo quindi un nuovo utente:
sudo useradd -m -d /opt/ansible -s /bin/bash ansible
sudo su - ansible
A questo punto possiamo preparare l’ambiente Python e installare Ansible:
python3.10 -m venv .venv
source .venv/bin/activate
pip install ansible ansible-pylibssh
pip freeze | grep ansible
ansible --version
Nel DevNetOps course material, è disponibile il file requirement.txt
aggiornato, utilizzabile per installare le dipendenze necessarie per tutti i laboratori disponibili.
pip -r requirement.txt
Dobbiamo ricordare di caricare l’ambiente Python appena creato, prima di eseguire Ansible:
source .venv/bin/activate
L’ambiente può essere disattivato con il seguente comando:
deactivate
Poiché stiamo utilizzando un utente dedicato, possiamo caricare il virtual environment direttamente al login aggiungendo a .bashrc
il seguente comando:
source .venv/bin/activate