Installer Ansible 2.10 sur CentOS 7 (Hors ligne)

Installer Ansible 2.10 sur CentOS 7 (Hors ligne)

Installation d’Ansible 2.10 sur CentOS 7 (hors ligne)

🧠 Contexte

Installer Ansible 2.10 sur CentOS 7 dans un environnement sans accès à Internet (parce que sinon, ce serait trop simple !).
À noter qu’aucun paquet officiel (.rpm) n’est disponible pour cette version.


⚙️ Prérequis

  • Une forge sous CentOS 7 (machine physique ou virtuelle) connectée à Internet pour télécharger Ansible et les collections nécessaires.
  • La machine cible (hors ligne) doit être configurée de façon identique.
  • Une bonne playlist : 🎶 King Princess & Mark Ronson – Happy Together

💡 Forge : machine utilisée pour préparer ou construire des paquets avant transfert vers un environnement isolé.


1️⃣ Installation des paquets

Avant tout, installons Python 3.6 et virtualenv pour créer un environnement isolé :

1
yum -y install python-virtualenv python36

2️⃣ Création de l’environnement Python

Créons le répertoire Ansible et déplaçons-nous dedans :

1
mkdir /etc/ansible && cd /etc

Créons ensuite l’environnement virtuel basé sur Python 3.6 :

1
virtualenv --python=/usr/bin/python3.6 ansible

Activation de l’environnement :

1
source /etc/ansible/bin/activate

Mettons ensuite pip à jour :

1
pip install --upgrade pip

Et installons PyWinRM, utile pour les connexions vers Windows :

1
pip3 install "pywinrm>=0.2.2"

3️⃣ Installation d’Ansible 2.10.7

Installons maintenant Ansible :

1
pip3 install ansible==2.10.7

Vérifions la version installée :

1
ansible --version

Une alerte Python peut apparaître concernant la version de cryptography.
Vous remarquerez également que nous n’avons pas encore de fichier de configuration Ansible.


4️⃣ Correction de l’avertissement Python

Désinstallons le paquet cryptography actuel :

1
pip3 uninstall cryptography

Puis installons la version stable 36.0.2 depuis un miroir fiable :

1
pip3 install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com cryptography==36.0.2


5️⃣ Configuration d’Ansible

Comme aucun fichier de configuration n’est présent par défaut, téléchargeons ceux fournis par le dépôt officiel :

1
2
wget https://raw.githubusercontent.com/ansible/ansible/v2.10.17/examples/ansible.cfg
wget https://raw.githubusercontent.com/ansible/ansible/v2.10.17/examples/hosts

Vérifions à nouveau la version d’Ansible :

1
ansible --version

Modifions ensuite la configuration :

1
vi /etc/ansible/ansible.cfg

Ajoutez ou ajustez les lignes suivantes pour définir les chemins :

1
2
3
4
inventory        = /etc/ansible/hosts
collections_path = /etc/ansible/collections
library          = /etc/ansible/my_modules
module_utils     = /etc/ansible/my_modules_utils

6️⃣ Exporter l’environnement Ansible

Une fois votre configuration finalisée (ajout de modules, collections, etc.), créez une archive :

1
cd /etc && tar czf ansible2.10.7.tar.gz /etc/ansible/

7️⃣ Importer Ansible sur la machine hors ligne

Sur la machine cible, installez les paquets requis :

1
sudo yum -y install python-virtualenv python36

Puis décompressez l’archive :

1
sudo tar xzf ./ansible2.10.7.tar.gz -C /etc/

Assurez-vous d’assigner les bons droits sur le répertoire /etc/ansible.


8️⃣ Utilisation

Activer l’environnement :

1
source /etc/ansible/bin/activate

Quitter l’environnement :

1
deactivate

✅ Conclusion

Vous disposez désormais d’un Ansible 2.10 fonctionnel et portable, prêt à être utilisé dans un environnement totalement isolé (zone air-gap).
Une méthode fiable et reproductible pour vos infrastructures industrielles ou sécurisées.


💡 Astuce : vous pouvez aussi exporter/importer vos collections avec :

1
2
ansible-galaxy collection download <nom_de_collection>
ansible-galaxy collection install <fichier>.tar.gz