Installation de Python 2.7 sur CentOS 6.9 pour la compatibilité avec Ansible

Contexte

CentOS 6.9 est livré avec Python 2.6.6 par défaut. Cette version du système d'exploitation a atteint sa fin de vie (EOL) en 2020, et les outils d'automatisation modernes comme Ansible 2.9+ nécessitent au minimum Python 2.7. L'installation via les Collecsions de Logiicels (SCL) est donc requise.

Réparation préventive de la base de données RPM

Cette étape évite l'erreur DB_RUNRECOVERY: Fatal error durant l'installation.

# Suppression des fichiers de base de données corrompus
rm -f /var/lib/rpm/__db.00*
# Reconstruction de la base de données
rpm --rebuilddb
# Nettoyage des caches yum
yum clean all

Configuration du dépôt SCL

Les dépôts officiels étant indisponibles, le fichier de configuration SCL doit être installé puis modifié pour pointer vers un miroir d'archive.

# Installation du paquet de configuration SCL
yum install -y centos-release-scl
# Suppression des fichiers de configuration par défaut défectueux
rm -f /etc/yum.repos.d/CentOS-SCLo-scl*.repo

Pointage vers les miroirs d'archive Vault

Création manuelle des fichiers de dépôt utilisant les archives Vault d'Aliyun.

cat <<repo_eof> /etc/yum.repos.d/CentOS-SCLo-scl.repo
[centos-sclo-sclo]
name=CentOS-6.10 - SCLo sclo (Archive)
baseurl=http://mirrors.aliyun.com/centos-vault/6.10/sclo/x86_64/sclo/
gpgcheck=0
enabled=1
REPO_EOF

cat <<repo_eof> /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
[centos-sclo-rh]
name=CentOS-6.10 - SCLo rh (Archive)
baseurl=http://mirrors.aliyun.com/centos-vault/6.10/sclo/x86_64/rh/
gpgcheck=0
enabled=1
REPO_EOF</repo_eof></repo_eof>

Installation et vérification de Python 2.7

# Mise à jour des métadonnées et installation du paquet
yum clean all
yum makecache
yum install -y python27

# Ajout des bibliothèques Python 2.7 au linker dynamique
echo "/opt/rh/python27/root/usr/lib64" > /etc/ld.so.conf.d/python27-opt-rh.conf
ldconfig

# Vérification de la version installée (chemin par défaut SCL)
/opt/rh/python27/root/usr/bin/python --version

Configuration d'Ansible pour l'inventaire

Ansible doit être informé du chemin vers l'interpréteur Python 2.7 spécifiquement installé pour cet hôte.

Dans un fichier d'inventaire au format INI

votre_serveur_ip ansible_python_interpreter=/opt/rh/python27/root/usr/bin/python

Dans un fichier d'inventaire au format YAML

votre_serveur_ip:
  ansible_python_interpreter: /opt/rh/python27/root/usr/bin/python

Points importants

  1. Ne pas modifier Python système : L'interpréteur /usr/bin/python ne doit pas être remplacé, car yum en dépend directement.
  2. Source alternative : En cas de problème avec le miroir Aliyun, l'URL de base peut être remplacée par https://vault.centos.org/6.10/sclo/x86_64/....
  3. Activation de l'environnement : Pour utiliser Python 2.7 dans un shell courant, exécuter : scl enable python27 bash.

Étiquettes: CentOS-6 Python-2.7 SCL Ansible Vault

Publié le 2 juin à 21h57