Skip to content

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

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