Installing ansible¶
Objectif
Explorer les méthodes d'installation d'ansible sur les distributions courantes : installation manuelle via le gestionnaire de paquets, utilisation des PPA, installation via pip dans un environnement virtuel Python et provisioning avec vagrant (ajout).
Durée
~45 minutes (3 challenges + manipulations VM)
Challenge 1¶
La configuration de la VM Ubuntu sur VirtualBox a déjà été faite sur le Vagrantfile de l'atelier.
Lancement de la VM avec vagrant.
Je fais une susbtitution de la dernière commande pour remplacer le mot up par ssh -c suivi des instructions que je souhaite donner à la VM ciblée (qui restera ubuntu car la dernière option reste ubuntu...).
Je rafraichis la liste et la version des paquets disponibles, pour ensuite installer ansible-core et tester son output afin de confirmer qu'ansible est installé.
Info
Une particularité de vagrant sera utilisée pour la suite des ateliers : l'utilisateur vagrant peut exécuter des commandes avec sudo sans mot de passe. (plus simple dans notre cas).
Je peux ensuite détruire la VM.

Le but de vagrant est aussi d'automatiser cette action...
Possible avec ansible_local pour le faire nativement... en ajoutant la ligne ansible.install = true au provisionning de la VM dans le Vagrantfile.
Je lancerai aussi un playbook setup.yml pour confirmer qu'ansible est installé (vu que vagrant a obligatoirement besoin d'un playbook, même vide...).
---
- name: "Vérification installation d'`ansible`"
hosts: ubuntu
gather_facts: no
tasks:
- name: "Confirmation `ansible`"
debug:
msg: "{{ ansible_version.full }} sur {{ inventory_hostname }}"
Une fois vagrant up ubuntu effectué, ansible s'installe avec le provisionning par vagrant et run le playbook instruit.

Une fois le playbook lancé.

Si la VM est déjà lancée, il est possible de faire vagrant provision ubuntu...
Challenge 2¶
Les Personal Package Archives (abrégés PPA) sont des dépôts proposés par Canonical pour les personnes souhaitant accéder aux dernières version des paquets proposés par leur(s) développeur(s), ou accéder à des paquets non conformes au circuit de validation.
Les PPA sont liés à la plateforme Launchpad (service de Canonical) qui prend le code source envoyé par les développeurs et génère des paquets .deb.
Ainsi, pour vérifier qu'ansible s'installe via le PPA, on peut comparer la version disponible dans les dépôts APT avec celle fournie par le PPA.

La version 2.10.7 est disponible au vendredi 13 mars 2026 dans les dépôts APT. Si on ajoute le PPA associé et que l'on re-vérifie la version d'ansible disponible.
vagrant ssh -c "sudo apt-add-repository ppa:ansible/ansible -y" ubuntu
vagrant ssh -c "apt-cache madison ansible" ubuntu

Après l'ajout, la version 2.17.14 d'ansible-core sera installé

Sinon, la version 2.12.0 sur les dépots APT. (Installation refaite sans l'ajout du dépôt PPA)

Challenge 3¶
Pareillement à la VM Ubuntu, le Vagrantfile contient déjà le provisionning de la VM Rocky Linux.
Démarrage de la VM Rocky Linux.
Ensuite, j'initialise un environnement virtuel dans le home dir de l'utilisateur vagrant.
La divergence avec l'exemple donné sous Debian est le gestionnaire de paquets, qui sous Rocky Linux est dnf au lieu d'apt.
Pas besoin d'installer le paquet
python3-venvcarvenvest inclu dans le paquetpython3.x86_64(natif)
Je vérifie l'utilisation du venv par la commande command -v python qui indique le chemin absolu vers l'exécutable python3 (qui sera changé pour /home/vagrant/.venv/bin/python3).

Le venv n'est actif que pour la commande que j'ai lancée dans mon cas. Si la commande command -v est re-exécutée, l'exécutable python3 trouvé sera celui global.

Je retiens
- Plusieurs méthodes d'installation : gestionnaire de paquets natif, PPA (Ubuntu),
pip+venv, ou provisioningvagrantavecansible_local. - Les PPA donnent accès à des versions plus récentes qu'
aptseul, mais ajoutent un dépôt tiers. venvisole les dépendances Python et n'est actif que dans le shell courant.- L'utilisateur
vagrantdispose desudosans mot de passe, ce qui simplifie les labs.
Cheatsheet¶
| Symptôme | Cause probable | Correction |
|---|---|---|
vagrant up échoue avec « box not found » |
La box bento/ubuntu-22.04 ou bento/rockylinux-9 n'est pas téléchargée |
vagrant box add bento/ubuntu-22.04 puis relancer, ou laisser vagrant up la récupérer (prévoir le temps de téléchargement) |
ansible --version → failed après apt install ansible-core |
Les dépôts APT n'ont pas été rafraîchis, paquet introuvable | Lancer sudo apt update avant le install, puis vérifier avec apt-cache madison ansible-core |
apt-add-repository ppa:ansible/ansible échoue (GPG / clé manquante) |
software-properties-common absent ou clé de signature non importée |
Installer le paquet : sudo apt install -y software-properties-common, relancer l'ajout du PPA |
command -v python3 renvoie /usr/bin/python3 après source .venv/bin/activate |
Le venv n'est activé que dans le shell courant ; chaque vagrant ssh -c ouvre un nouveau shell |
Chaîner activation et commande dans la même invocation : vagrant ssh -c "source .venv/bin/activate && command -v python3" |
ansible_local ne déclenche rien au vagrant up |
Pas de playbook déclaré ou fichier absent du dossier Vagrant |
Créer setup.yml (même vide avec une tâche debug) à la racine du Vagrantfile avant vagrant up ou vagrant provision |
Sources (principales)¶
- Docs
ansibleInstallingansible - Docs
ansibleRelease and maintenance - Docs
ansibleansible-corevsansiblecommunity package - Vagrant
ansible_localprovisioner - Vagrant
ansibleprovisioner (depuis le host) - Python
venv(environnements virtuels) - pipx Installer des applications Python isolées
- Ansible Galaxy Collections et rôles communautaires
Suite : Authentication