Installation Kolla-Ansible¶
Introduction¶
Cette section détaille l'installation de Kolla-Ansible sur le nœud de déploiement, incluant la création de l'environnement Python virtuel et l'installation des dépendances.
Prérequis¶
- Préparation pour Kolla
- Nœud deploy accessible en SSH
Points à apprendre¶
Connexion au nœud deploy¶
Création de l'environnement virtuel¶
# Installer les dépendances système
sudo apt update
sudo apt install -y \
python3 \
python3-pip \
python3-venv \
python3-dev \
libffi-dev \
gcc \
libssl-dev \
git
# Créer le venv
python3 -m venv ~/kolla-venv
# Activer
source ~/kolla-venv/bin/activate
# Mettre à jour pip
pip install -U pip setuptools wheel
Installation de Kolla-Ansible¶
# Méthode 1 : Via pip (recommandé pour production)
pip install 'kolla-ansible==19.*'
# Méthode 2 : Version spécifique
pip install 'kolla-ansible==19.0.0'
# Méthode 3 : Depuis Git (dernières corrections)
pip install git+https://opendev.org/openstack/kolla-ansible@stable/2025.2
Installation des dépendances Ansible¶
# Ansible core
pip install 'ansible-core>=2.16,<2.18'
# Modules additionnels
pip install docker
# Installer les collections requises
kolla-ansible install-deps
# Vérifier les collections
ansible-galaxy collection list
Vérification de l'installation¶
# Version Kolla-Ansible
kolla-ansible --version
# Version Ansible
ansible --version
# Localisation des fichiers
pip show kolla-ansible | grep Location
Copie des fichiers de configuration¶
# Créer le répertoire Kolla
sudo mkdir -p /etc/kolla
sudo chown $USER:$USER /etc/kolla
# Copier les fichiers exemple
cp -r ~/kolla-venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/
# Structure créée
ls -la /etc/kolla/
# globals.yml
# passwords.yml
# ... autres fichiers
Copie des inventaires¶
# Copier les templates d'inventaire
cp ~/kolla-venv/share/kolla-ansible/ansible/inventory/all-in-one ~/
cp ~/kolla-venv/share/kolla-ansible/ansible/inventory/multinode ~/
# Pour notre lab HA, on utilisera multinode
Génération des mots de passe¶
# Générer tous les mots de passe aléatoires
kolla-genpwd
# Vérifier
head -20 /etc/kolla/passwords.yml
# Important : Sauvegarder ce fichier !
cp /etc/kolla/passwords.yml ~/passwords.yml.backup
Configuration d'Ansible¶
# Créer ansible.cfg pour optimiser les performances
cat > ~/ansible.cfg << 'EOF'
[defaults]
host_key_checking = False
pipelining = True
forks = 50
gathering = smart
fact_caching = jsonfile
fact_caching_connection = /tmp/ansible_facts
fact_caching_timeout = 86400
retry_files_enabled = False
remote_user = ubuntu
[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o UserKnownHostsFile=/dev/null
pipelining = True
[privilege_escalation]
become = True
become_method = sudo
become_user = root
become_ask_pass = False
EOF
Structure finale¶
# Vérifier la structure
tree -L 2 ~
# /home/ubuntu/
# ├── kolla-venv/
# │ ├── bin/
# │ ├── lib/
# │ └── share/
# ├── multinode # Inventaire
# ├── all-in-one # Inventaire (non utilisé)
# ├── ansible.cfg # Config Ansible
# └── passwords.yml.backup
tree -L 1 /etc/kolla/
# /etc/kolla/
# ├── globals.yml
# ├── passwords.yml
# └── ... autres fichiers
Script d'installation automatique¶
#!/bin/bash
# install-kolla.sh - Script d'installation complète
set -e
echo "=== Installation Kolla-Ansible ==="
# Dépendances système
sudo apt update
sudo apt install -y python3 python3-pip python3-venv python3-dev \
libffi-dev gcc libssl-dev git
# Création venv
echo "Création environnement virtuel..."
python3 -m venv ~/kolla-venv
source ~/kolla-venv/bin/activate
# Installation
echo "Installation Kolla-Ansible..."
pip install -U pip setuptools wheel
pip install 'kolla-ansible==19.*'
pip install 'ansible-core>=2.16,<2.18'
pip install docker
# Collections Ansible
echo "Installation collections Ansible..."
kolla-ansible install-deps
# Configuration
echo "Configuration..."
sudo mkdir -p /etc/kolla
sudo chown $USER:$USER /etc/kolla
cp -r ~/kolla-venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/
cp ~/kolla-venv/share/kolla-ansible/ansible/inventory/multinode ~/
# Mots de passe
echo "Génération des mots de passe..."
kolla-genpwd
cp /etc/kolla/passwords.yml ~/passwords.yml.backup
# Ansible config
cat > ~/ansible.cfg << 'EOF'
[defaults]
host_key_checking = False
pipelining = True
forks = 50
[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60s
[privilege_escalation]
become = True
EOF
echo "=== Installation terminée ==="
echo "Versions installées:"
kolla-ansible --version
ansible --version | head -1
Alias utiles dans .bashrc¶
cat >> ~/.bashrc << 'EOF'
# Kolla-Ansible
alias ka='source ~/kolla-venv/bin/activate'
alias kolla='kolla-ansible -i ~/multinode'
# Raccourcis commandes fréquentes
kolla-bootstrap() { kolla-ansible -i ~/multinode bootstrap-servers "$@"; }
kolla-prechecks() { kolla-ansible -i ~/multinode prechecks "$@"; }
kolla-deploy() { kolla-ansible -i ~/multinode deploy "$@"; }
kolla-reconfigure() { kolla-ansible -i ~/multinode reconfigure "$@"; }
kolla-post() { kolla-ansible -i ~/multinode post-deploy "$@"; }
EOF
source ~/.bashrc
Exemples pratiques¶
Test de l'installation¶
# Activer l'environnement
source ~/kolla-venv/bin/activate
# Vérifier que tout fonctionne
kolla-ansible --help
# Lister les tags disponibles
kolla-ansible -i ~/multinode deploy --list-tags | head -20
Vérifier les images Docker disponibles¶
# Images Kolla sur quay.io
curl -s https://quay.io/api/v1/repository?namespace=openstack.kolla | \
jq -r '.repositories[].name' | head -20
# Vérifier une image spécifique
docker pull quay.io/openstack.kolla/nova-api:2025.2-ubuntu-noble
docker images | grep kolla
Ressources¶
Checkpoint¶
- Environnement virtuel Python créé
- Kolla-Ansible installé (version 19.x)
- Collections Ansible installées
- Fichiers de configuration copiés dans /etc/kolla/
- Mots de passe générés et sauvegardés
- ansible.cfg configuré
- Commande
kolla-ansible --helpfonctionne