Installer Ansible sur Ubuntu 22.04 LTS

admineci

admineci

Auteur

552 mots
Installer Ansible sur Ubuntu 22.04 LTS

Installer Ansible sur Ubuntu 22.04 LTS : guide complet et bonnes pratiques

Pourquoi Ansible ?

 

Dans un monde où l’agilité prime, l’automatisation libère les équipes systèmes de tâches répétitives et minimise les erreurs humaines. Ansible se distingue par son approche agent‑less : une simple connexion SSH suffit pour piloter l’ensemble de l’infrastructure. Dans cet article, nous allons non seulement installer l’outil, mais aussi comprendre pourquoi chaque étape compte afin de partir sur des bases saines et évolutives.

Vue d’ensemble du laboratoire

Nous travaillerons sur cinq machines virtuelles Ubuntu 22.04 LTS :

 

10.10.4.10 control.lab.example.com control
10.10.4.11 servera.lab.example.com servera
10.10.4.12 serverb.lab.example.com serverb
10.10.4.13 serverc.lab.example.com serverc
10.10.4.14 serverd.lab.example.com serverd

 

Astuce : cette topologie miniature reproduit un parc mixte web, base de données et monitoring. Elle suffit pour expérimenter le cycle de vie complet d’un playbook.

 

1. Préparer le nœud de contrôle

1.1 Mettre le système à jour

sudo apt update && sudo apt upgrade -y

Maintenir le nœud de contrôle à jour évite les incompatibilités de bibliothèques Python.

 

1.2 Installer les dépendances Python

sudo apt install -y python3-venv python3-pip build-essential

 

1.3 Créer un environnement virtuel

Pourquoi ? Pour isoler la pile Python d’Ansible du système et faciliter les montées de version.

python3 -m venv ~/ansible-venv
source ~/ansible-venv/bin/activate

 

1.4 Installer Ansible

pip install --upgrade pip wheel
pip install ansible ansible-core ansible-lint

 

Vérifiez l’installation :

ansible --version

Vous devez voir la version d’Ansible ainsi que le chemin de l’interpréteur Python pointant vers ~/ansible-venv.

2. Sécuriser l’accès avec un utilisateur dédié

Créer un compte dédié renforce la traçabilité et évite de compromettre le compte root.

sudo useradd -m -s /bin/bash ansible
echo "ansible:ansible" | sudo chpasswd
sudo usermod -aG sudo ansible
echo "ansible ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ansible

Activez ensuite le même environnement virtuel pour ce compte :

sudo su - ansible
python3 -m venv ~/ansible-venv && source ~/ansible-venv/bin/activate
pip install ansible ansible-core

Ajoutez l’activation automatique dans ~/.bashrc :

echo "source ~/ansible-venv/bin/activate" >> ~/.bashrc

3. Préparer les hôtes gérés

Sur le nœud de contrôle, exécutez :

for host in servera serverb serverc serverd; do
  ssh root@${host}.lab.example.com "\
    useradd -m -s /bin/bash ansible && \
    echo 'ansible:ansible' | chpasswd && \
    usermod -aG sudo ansible && \
    echo 'ansible ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/ansible && \
    mkdir -p /home/ansible/.ssh && chown ansible:ansible /home/ansible/.ssh"
done

Puis copiez votre clé publique :

for host in servera serverb serverc serverd; do
  ssh-copy-id ansible@${host}.lab.example.com
done

Bonnes pratiques :

  • Utiliser des clés ed25519 pour de meilleures performances.

  • Désactiver StrictHostKeyChecking dans un lab, mais pas en production !

4. Structurer l’inventaire et la configuration

4.1 Inventaire statique minimal

[webservers]
servera.lab.example.com
serverb.lab.example.com

[databases]
serverc.lab.example.com

[monitoring]
serverd.lab.example.com

[all_servers:children]
webservers
databases
monitoring

Enregistrez ce contenu dans ~/ansible-labs/inventory.

4.2 ansible.cfg

Un fichier de configuration local évite de répéter les options en ligne de commande :

[defaults]
inventory = inventory
remote_user = ansible
host_key_checking = False
stdout_callback = yaml
[privilege_escalation]
become = True
become_method = sudo

5. Premier contact avec vos serveurs

Activez l’environnement virtuel :

source ~/ansible-venv/bin/activate

5.1 Ping de validation

ansible all -m ping

Tous les hôtes doivent répondre success.

5.2 Récupérer l’OS de chaque hôte

ansible all -m command -a "lsb_release -d"

Vous obtenez une vue d’ensemble des distributions, pratique avant un patch global.

6. Aller plus loin

Vous voilà prêts à écrire vos premiers playbooks. Dans un prochain article, nous verrons comment rendre vos déploiements idempotents et gérer des variables complexes grâce aux group_vars.

 

Partager cet article

Twitter LinkedIn

Vous avez un projet similaire ?

Nos experts sont là pour vous accompagner dans vos projets cloud et infrastructure.

Articles similaires

Nathan

Assistant virtuel ECINTELLIGENCE