Inventaire Multinode¶
Introduction¶
L'inventaire Ansible définit les nœuds du cluster, leurs rôles et les variables spécifiques. Pour un déploiement HA, chaque service est distribué sur plusieurs nœuds.
Prérequis¶
- Configuration globals.yml
- Tous les nœuds accessibles en SSH depuis deploy
Points à apprendre¶
Structure de l'inventaire¶
# ~/multinode - Inventaire pour lab OpenStack HA
###############################################################################
# Control Plane - 3 nœuds pour HA
###############################################################################
[control]
controller-1 ansible_host=10.0.0.11 ansible_user=ubuntu
controller-2 ansible_host=10.0.0.12 ansible_user=ubuntu
controller-3 ansible_host=10.0.0.13 ansible_user=ubuntu
###############################################################################
# Network - Agents Neutron (colocalisés avec control)
###############################################################################
[network]
controller-1
controller-2
controller-3
###############################################################################
# Compute - Hyperviseurs Nova
###############################################################################
[compute]
compute-1 ansible_host=10.0.0.21 ansible_user=ubuntu
compute-2 ansible_host=10.0.0.22 ansible_user=ubuntu
###############################################################################
# Storage - Cinder Volume (si LVM local)
###############################################################################
[storage]
controller-1
controller-2
controller-3
###############################################################################
# Monitoring (optionnel)
###############################################################################
[monitoring]
controller-1
###############################################################################
# Services de base (MariaDB, RabbitMQ, Memcached)
###############################################################################
[mariadb:children]
control
[rabbitmq:children]
control
[memcached:children]
control
###############################################################################
# Groupes Kolla requis
###############################################################################
[baremetal:children]
control
network
compute
storage
monitoring
###############################################################################
# Variables globales
###############################################################################
[all:vars]
ansible_user=ubuntu
ansible_become=true
ansible_python_interpreter=/usr/bin/python3
# Ces variables peuvent surcharger globals.yml par hôte si nécessaire
# network_interface=enp1s0
# storage_interface=enp2s0
###############################################################################
# Variables par hôte (si interfaces différentes)
###############################################################################
# [compute-1:vars]
# network_interface=eth0
# neutron_external_interface=eth1
Vérification de l'inventaire¶
source ~/kolla-venv/bin/activate
# Lister tous les hôtes
ansible -i ~/multinode all --list-hosts
# Lister par groupe
ansible -i ~/multinode control --list-hosts
ansible -i ~/multinode compute --list-hosts
# Test de connectivité
ansible -i ~/multinode all -m ping
# Vérifier les facts d'un hôte
ansible -i ~/multinode controller-1 -m setup -a "filter=ansible_interfaces"
Configuration par host_vars¶
# Créer des variables spécifiques par hôte
mkdir -p ~/host_vars
# Variables pour controller-1
cat > ~/host_vars/controller-1 << 'EOF'
# Variables spécifiques à controller-1
# Utile si interfaces différentes ou config spéciale
EOF
Checkpoint¶
- Inventaire créé avec tous les nœuds
- Groupes correctement définis
- Test ping réussi sur tous les nœuds