Aller au contenu

Présentation de Heat et Terraform pour OpenStack#


Introduction à Heat#

  • Origines et objectifs
    • Projet OpenStack dédié à l'orchestration
    • Automatiser et gérer le déploiement d'infrastructures complexes
  • Composants principaux
    • heat-api: interface RESTful pour interagir avec Heat
    • heat-engine: cœur de l'orchestrateur, traite les templates et exécute les actions
    • heat-dashboard: plugin Horizon pour gérer Heat depuis l'interface web
  • Fonctionnement de Heat
    • Utilisation de templates YAML (Heat Orchestration Template, HOT)
    • Description des ressources, paramètres et dépendances
    • Déploiement, mise à jour et suppression des stacks

Introduction à Terraform#

  • Origines et objectifs
    • Outil IaC multi-cloud développé par HashiCorp
    • Provisionner, modifier et détruire des infrastructures de manière déclarative
  • Composants principaux
    • Terraform Core: interprète les fichiers de configuration et gère les ressources
    • Providers: extensions pour interagir avec différentes plateformes (OpenStack, AWS, etc.)
    • Modules: réutilisation de configurations pour faciliter la gestion de l'infrastructure
  • Fonctionnement de Terraform
    • Utilisation de fichiers de configuration HCL (HashiCorp Configuration Language)
    • Description des ressources, variables et dépendances
    • Planification et exécution des changements d'infrastructure

Comparaison entre Heat et Terraform#

  • Points communs et différences
    • Les deux permettent l'automatisation et la gestion d'infrastructures
    • Heat est spécifique à OpenStack, Terraform est multi-cloud
  • Avantages et inconvénients de chaque solution
    • Heat: intégration native avec OpenStack, moins polyvalent que Terraform
    • Terraform: prise en charge de plusieurs plateformes, courbe d'apprentissage plus longue
  • Cas d'utilisation typiques
    • Heat: déploiements OpenStack purs, gestion des ressources OpenStack spécifiques
    • Terraform: déploiements multi-cloud, infrastructure hybride

Intégration de Heat et Terraform avec OpenStack#

  • Interaction avec les briques OpenStack
    • Heat: intégration native avec Nova, Swift, Glance, Neutron, etc.
    • Terraform: utilisation du provider OpenStack pour interagir avec les briques
  • Configuration et authentification
    • Heat: configuration via openrc.sh, authentification avec Keystone
    • Terraform: configuration du provider OpenStack, authentification avec les variables d'environnement
  • Exemples d'utilisation pour OpenStack
    • Heat: déploiement de VMs, création de réseaux, ajout de stockage, etc.
    • Terraform: provisionnement de VMs, allocation d'adresses IP, configuration de réseaux, etc.