Indice

Categorie

Category cover

Automazione
18 posts

Category cover

CISO
10 posts

Category cover

Sicurezza Personale
7 posts

Category cover

Infrastruttura
4 posts

Category cover

Sicurezza
3 posts

Category cover

Libri
2 posts

Category cover

Vita
1 posts

Installare Ansible

Andrea Dainese
24 Settembre 2023
Post cover

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