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¶
- Installation Kolla-Ansible
- Connaissance de l'architecture réseau du lab
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)