DevOps & Outils¶
Services d'orchestration et outils d'Infrastructure as Code pour OpenStack.
Heat¶
Heat est le service d'orchestration d'OpenStack. Il permet de définir une infrastructure complète (VMs, réseaux, volumes, load balancers) dans des templates declaratifs appelés HOT (Heat Orchestration Template), au format YAML.
Cas d'usage : déploiement d'environnements complets, autoscaling, infrastructure reproductible.
Comparaison¶
Heat est l'équivalent d'AWS CloudFormation ou des ARM Templates Azure pour OpenStack.
Exemple de template HOT¶
heat_template_version: 2021-04-16
description: Deploiement d'un serveur web
parameters:
flavor:
type: string
default: m1.medium
image:
type: string
default: ubuntu-22.04
resources:
mon_reseau:
type: OS::Neutron::Net
mon_sous_reseau:
type: OS::Neutron::Subnet
properties:
network: { get_resource: mon_reseau }
cidr: 10.0.0.0/24
mon_serveur:
type: OS::Nova::Server
properties:
flavor: { get_param: flavor }
image: { get_param: image }
networks:
- network: { get_resource: mon_reseau }
outputs:
server_ip:
value: { get_attr: [mon_serveur, first_address] }
Opérations courantes¶
# Creer une stack
openstack stack create ma-stack -t template.yaml
# Suivre le deploiement
openstack stack show ma-stack
openstack stack event list ma-stack
# Mettre a jour une stack
openstack stack update ma-stack -t template-v2.yaml
# Supprimer une stack (et toutes ses ressources)
openstack stack delete ma-stack
Autoscaling
Heat intégré l'autoscaling via les ressources OS::Heat::AutoScalingGroup et OS::Heat::ScalingPolicy, declenchees par les alarmes Aodh sur les métriques Ceilometer/Gnocchi.
Kolla¶
Kolla et Kolla-Ansible permettent de déployer OpenStack sous forme de conteneurs Docker. Chaque service OpenStack (Nova, Neutron, Keystone, etc.) s'exécuté dans son propre conteneur, simplifiant les mises à jour et la gestion des dépendances.
Cas d'usage : déploiement OpenStack en production, mises à jour simplifiées, environnements de test reproductibles.
Fonctionnement¶
| Composant | Rôle |
|---|---|
| Kolla | Construction des images Docker pour chaque service |
| Kolla-Ansible | Déploiement et configuration des conteneurs via Ansible |
# Installer kolla-ansible
pip install kolla-ansible
# Generer la configuration
kolla-ansible install-deps
cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/kolla
# Deployer OpenStack
kolla-ansible -i inventory deploy
# Reconfigurer apres modification
kolla-ansible -i inventory reconfigure
Outils d'Infrastructure as Code¶
OpenStack s'intégré avec les principaux outils IaC pour automatiser la création et la gestion des ressources :
Tutoriels outils IaC
Pour apprendre a utiliser ces outils, consultez les tutoriels dédiés :
| Outil | Usage OpenStack | Provider/Plugin |
|---|---|---|
| Packer | Créer des images pour Nova/Glance | Plugin openstack |
| Ansible | Configurer des instances, déployer des applications | Collection openstack.cloud |
| OpenTofu | Provisionner toute l'infrastructure OpenStack | Provider openstack |
Exemple Packer¶
source "openstack" "ubuntu" {
image_name = "ubuntu-custom"
source_image_name = "ubuntu-22.04"
flavor = "m1.medium"
ssh_username = "ubuntu"
networks = ["mon-reseau-id"]
}