# 🐍 Guide : Installer Ansible proprement via un VENV (Virtual Environment)

<div class="documentation-container" id="bkmrk-pourquoi-un-venv-glo"><div style="background-color: #fff3cd; border-left: 5px solid #ffc107; padding: 15px; margin: 20px 0;">**Pourquoi un VENV global ?**</div></div>Les distributions modernes (Debian 12+, Ubuntu 24.04+) bloquent l'installation de paquets Python système avec `pip` (erreur *externally-managed-environment*). Installer Ansible via `apt` fournit souvent une version obsolète. La solution est un VENV placé dans `/opt/`, accessible à tous les utilisateurs via des liens symboliques.

## 1. Installation des prérequis système

En tant qu'utilisateur `root`, installez Python et le gestionnaire d'environnements :

```
apt update
apt install -y python3-pip python3-venv
```

## 2. Création de l'environnement virtuel

Nous allons créer le dossier de l'environnement dans `/opt/ansible-venv` :

```
python3 -m venv /opt/ansible-venv
```

## 3. Installation d'Ansible et des dépendances

On utilise le binaire `pip` contenu dans notre VENV pour installer Ansible ainsi que les librairies nécessaires à notre infrastructure (Proxmox, K8s, Docker) :

```
/opt/ansible-venv/bin/pip install --upgrade pip
/opt/ansible-venv/bin/pip install ansible ansible-core proxmoxer requests kubernetes docker
```

## 4. Création des liens symboliques (La Magie ✨)

Pour éviter de devoir "activer" le venv à chaque fois, on crée des liens symboliques dans `/usr/local/bin/`. Ainsi, n'importe quel utilisateur tapant `ansible` utilisera la version du VENV :

```
ln -s /opt/ansible-venv/bin/ansible /usr/local/bin/ansible
ln -s /opt/ansible-venv/bin/ansible-playbook /usr/local/bin/ansible-playbook
ln -s /opt/ansible-venv/bin/ansible-galaxy /usr/local/bin/ansible-galaxy
ln -s /opt/ansible-venv/bin/ansible-vault /usr/local/bin/ansible-vault
```

## 5. Utilisation et Vérification

Basculez sur votre utilisateur standard et vérifiez que le chemin pointe bien vers `/opt/` :

```
ansible --version
```

*Note : Pour mettre à jour Ansible plus tard, il suffira de relancer : `/opt/ansible-venv/bin/pip install --upgrade ansible`*