Skip to content

Configuration globals.yml

Introduction

Le fichier globals.yml est le cœur de la configuration Kolla-Ansible. Il définit tous les paramètres du déploiement : versions, réseaux, services activés, backends de stockage, etc.

Prérequis

Points à apprendre

Structure du fichier globals.yml

Le fichier est organisé en sections logiques :

# /etc/kolla/globals.yml

###############################################################################
# Kolla options
###############################################################################
config_strategy: "COPY_ALWAYS"
kolla_base_distro: "ubuntu"
kolla_install_type: "source"
openstack_release: "2025.2"

###############################################################################
# Networking
###############################################################################
network_interface: "eth0"
neutron_external_interface: "eth1"
kolla_internal_vip_address: "10.0.0.10"
# ... etc

Configuration complète pour le lab HA

# /etc/kolla/globals.yml - Configuration Lab OpenStack HA

###############################################################################
# Kolla options
###############################################################################

# Stratégie de configuration (COPY_ALWAYS recommandé)
config_strategy: "COPY_ALWAYS"

# Distribution de base pour les images
kolla_base_distro: "ubuntu"

# Type d'installation (source ou binary)
# source = compilé depuis git, binary = packages distro
kolla_install_type: "source"

# Version OpenStack
openstack_release: "2025.2"

# Tag des images Docker (auto si vide)
#openstack_tag: "2025.2-ubuntu-noble"

# Registry Docker (défaut: quay.io)
#docker_registry: "quay.io"
#docker_namespace: "openstack.kolla"

# Registry privé (si vous en avez un)
#docker_registry: "registry.local:5000"
#docker_registry_insecure: "yes"

###############################################################################
# Networking - CRITIQUE
###############################################################################

# Interface réseau pour les services OpenStack (API, DB, MQ)
# C'est l'interface sur le réseau management (10.0.0.0/24)
network_interface: "enp1s0"

# VIP interne (sera gérée par Keepalived)
# Doit être une IP libre sur le réseau management
kolla_internal_vip_address: "10.0.0.10"

# VIP externe (pour Horizon et API publique)
kolla_external_vip_address: "192.168.100.10"

# Interface pour le réseau externe (optionnel si différent)
kolla_external_vip_interface: "enp3s0"

# Interface pour Neutron provider networks
# C'est l'interface connectée au réseau externe/provider
neutron_external_interface: "enp3s0"

# Activer IPv6 (optionnel)
#enable_ipv6: "no"

###############################################################################
# Interface de stockage (pour Ceph, migration)
###############################################################################

# Interface pour le trafic stockage (Ceph, migration live)
storage_interface: "enp2s0"

# Interface pour le cluster Ceph (optionnel, défaut = storage_interface)
#cluster_interface: "enp2s0"

# Interface pour les tunnels réseau (VXLAN/GRE)
#tunnel_interface: "enp1s0"

###############################################################################
# Load Balancer (HAProxy + Keepalived)
###############################################################################

enable_haproxy: "yes"
enable_keepalived: "yes"

# Configuration avancée HAProxy
#haproxy_max_connections: 40000
#haproxy_processes: 1

# Keepalived
# keepalived_virtual_router_id: "51"

###############################################################################
# TLS / SSL
###############################################################################

# Activer TLS pour les API (recommandé en production)
kolla_enable_tls_internal: "no"
kolla_enable_tls_external: "no"

# Si TLS activé, fournir les certificats
#kolla_copy_ca_into_containers: "yes"
#kolla_certificates_dir: "/etc/kolla/certificates"

###############################################################################
# Services de base
###############################################################################

enable_keystone: "yes"
enable_glance: "yes"
enable_nova: "yes"
enable_neutron: "yes"
enable_cinder: "yes"
enable_horizon: "yes"
enable_placement: "yes"

# Memcached (cache tokens)
enable_memcached: "yes"

###############################################################################
# Base de données - MariaDB Galera
###############################################################################

enable_mariadb: "yes"

# Configuration Galera (automatique en multinode)
# Pas de config spéciale nécessaire, Kolla détecte le cluster

###############################################################################
# Message Queue - RabbitMQ
###############################################################################

enable_rabbitmq: "yes"

# RabbitMQ cluster (automatique en multinode)
#rabbitmq_cluster_cookie: "auto-generated"

###############################################################################
# Nova (Compute)
###############################################################################

# Type de virtualisation
nova_compute_virt_type: "kvm"

# Console VNC
nova_console: "novnc"
#nova_console: "spice"

# Activer les services Nova
enable_nova_serialconsole_proxy: "yes"

###############################################################################
# Neutron (Networking)
###############################################################################

# Plugin ML2 avec OVS
neutron_plugin_agent: "openvswitch"

# Ou OVN (plus moderne, recommandé pour nouveaux déploiements)
#neutron_plugin_agent: "ovn"

# Types de réseaux supportés
#neutron_type_drivers: "flat,vlan,vxlan"
#neutron_tenant_network_types: "vxlan"

# VXLAN VNI range
#neutron_vni_ranges: "1:1000"

# Extensions
enable_neutron_provider_networks: "yes"
#enable_neutron_dvr: "no"
#enable_neutron_qos: "yes"

###############################################################################
# Glance (Images)
###############################################################################

# Backend de stockage pour Glance
# file = local filesystem (pas HA)
# ceph = Ceph RBD (recommandé)
# swift = Swift object storage
glance_backend_file: "yes"
#glance_backend_ceph: "no"  # Activé après installation Ceph

# Si Ceph :
#glance_backend_ceph: "yes"
#ceph_glance_pool_name: "images"

###############################################################################
# Cinder (Block Storage)
###############################################################################

enable_cinder: "yes"
enable_cinder_backup: "no"

# Backend par défaut (LVM pour commencer)
enable_cinder_backend_lvm: "yes"
cinder_volume_group: "cinder-volumes"

# Ceph backend (activé après installation Ceph)
#enable_cinder_backend_lvm: "no"
#ceph_cinder_pool_name: "volumes"
#ceph_cinder_backup_pool_name: "backups"

###############################################################################
# Services additionnels (optionnels)
###############################################################################

# Heat (Orchestration)
enable_heat: "no"

# Octavia (Load Balancer)
enable_octavia: "no"

# Magnum (Kubernetes)
enable_magnum: "no"

# Barbican (Secrets)
enable_barbican: "no"

# Designate (DNS)
enable_designate: "no"

# Swift (Object Storage) - Alternative à Ceph RadosGW
enable_swift: "no"

###############################################################################
# Monitoring (optionnel, activé dans Phase 8)
###############################################################################

enable_prometheus: "no"
enable_grafana: "no"
#prometheus_alertmanager_host: "prometheus"

# Logging centralisé
enable_central_logging: "no"
enable_elasticsearch: "no"
enable_kibana: "no"

###############################################################################
# Options avancées
###############################################################################

# OpenStack Region
openstack_region_name: "RegionOne"

# Service endpoints
#openstack_service_workers: "auto"
#openstack_logging_debug: "False"

# Docker options
#docker_configure_for_zun: "no"
#containerd_configure_for_zun: "no"

###############################################################################
# Ceph (si géré par Kolla - non recommandé, préférer cephadm)
###############################################################################

#enable_ceph: "no"
#ceph_enable_cache: "no"
#ceph_cache_mode: "writeback"

Paramètres critiques pour le lab

# Les paramètres les plus importants pour notre lab :

# 1. Interfaces réseau
network_interface: "enp1s0"           # Management
neutron_external_interface: "enp3s0"  # Provider/External
storage_interface: "enp2s0"           # Storage/Ceph

# 2. VIPs
kolla_internal_vip_address: "10.0.0.10"
kolla_external_vip_address: "192.168.100.10"

# 3. Version
openstack_release: "2025.2"
kolla_base_distro: "ubuntu"

# 4. HA
enable_haproxy: "yes"
enable_keepalived: "yes"

Vérification de la configuration

# Valider la syntaxe YAML
python3 -c "import yaml; yaml.safe_load(open('/etc/kolla/globals.yml'))"

# Afficher les valeurs effectives (avec defaults)
source ~/kolla-venv/bin/activate
cd ~/kolla-venv/share/kolla-ansible/ansible

# Voir les variables d'un groupe
ansible-inventory -i ~/multinode --list --yaml | less

Configuration des services individuels

Pour personnaliser un service au-delà de globals.yml :

# Créer le répertoire de config
mkdir -p /etc/kolla/config/nova

# Ajouter des paramètres à nova.conf
cat > /etc/kolla/config/nova/nova.conf << 'EOF'
[DEFAULT]
# Personnalisations Nova

[scheduler]
# Filtres supplémentaires
enabled_filters = AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter
EOF

Exemples pratiques

Configuration minimale pour démarrer

# /etc/kolla/globals.yml - Configuration minimale

kolla_base_distro: "ubuntu"
openstack_release: "2025.2"

network_interface: "enp1s0"
neutron_external_interface: "enp3s0"
kolla_internal_vip_address: "10.0.0.10"

enable_haproxy: "yes"
enable_keepalived: "yes"

nova_compute_virt_type: "kvm"
neutron_plugin_agent: "openvswitch"

# Commencer avec LVM, migrer vers Ceph ensuite
glance_backend_file: "yes"
enable_cinder_backend_lvm: "yes"
cinder_volume_group: "cinder-volumes"

Diff entre config minimale et production

# Sauvegarder la config actuelle
cp /etc/kolla/globals.yml /etc/kolla/globals.yml.initial

# Après modifications
diff /etc/kolla/globals.yml.initial /etc/kolla/globals.yml

Ressources

Checkpoint

  • Je comprends la structure de globals.yml
  • Les interfaces réseau sont correctement configurées
  • Les VIPs sont définies sur des IPs libres
  • La version OpenStack est correcte (2025.2)
  • Les services essentiels sont activés
  • La configuration YAML est valide (pas d'erreur de syntaxe)