OpenStack avec DevStack et la CLI OpenStack pour DevOps

1. Qu'est-ce que DevStack ?

DevStack est un outil open source conçu pour simplifier le déploiement d'OpenStack dans un environnement de développement ou de test. Il installe rapidement tous les composants d’OpenStack sur une seule machine ou un cluster minimal.

Objectif principal : Fournir un environnement prêt à l'emploi pour expérimenter OpenStack.

Avantages :

  • Installation rapide.

  • Configuration simplifiée.

  • Idéal pour les développeurs et DevOps qui veulent se former.


2. Architecture d’OpenStack

OpenStack est une plateforme composée de plusieurs services modulaires qui fonctionnent ensemble pour offrir des fonctionnalités de gestion de cloud.

2.1. Les composants majeurs

  1. Keystone (Authentification et autorisation) : Service central d'authentification.

  2. Nova (Gestion des instances) : Responsable du cycle de vie des machines virtuelles.

  3. Glance (Service d'images) : Gère les images disque pour les instances.

  4. Neutron (Réseautage) : Gère les réseaux, sous-réseaux et routeurs.

  5. Cinder (Stockage en bloc) : Fournit des volumes persistants pour les instances.

  6. Swift (Stockage d’objets) : Système de stockage d’objets distribué.

  7. Horizon (Interface graphique) : Tableau de bord web pour interagir avec OpenStack.

  8. Heat (Orchestration) : Outil d’IaC pour déployer des stacks de ressources OpenStack.

2.2. Communication entre les composants

Les services d’OpenStack interagissent via des APIs REST :

  • Keystone agit comme point d'entrée central pour l'authentification.

  • Chaque service possède un gestionnaire API exposant ses fonctionnalités.

  • Les composants Nova, Neutron, et Cinder collaborent pour déployer une instance.


3. Introduction à la CLI OpenStack

Pourquoi utiliser la CLI ?

La CLI (Command Line Interface) est un outil puissant pour gérer OpenStack. Elle permet de :

  • Automatiser les tâches courantes comme la création d'instances, de volumes ou de réseaux.

  • Récupérer des informations détaillées sur l’état des ressources.

  • Dépanner efficacement en accédant aux logs ou aux statuts des services.

Fonctionnement de la CLI

  • La CLI interagit avec les APIs REST des services OpenStack.

  • Les commandes suivent une structure logique : openstack <ressource> <action>.

Actions disponibles :

  • list : Lister les ressources.

  • create : Créer une ressource.

  • delete : Supprimer une ressource.

  • show : Afficher les détails d’une ressource spécifique.

  • update : Modifier une ressource existante.

Chargement des variables d'environnement

Avant d'exécuter des commandes, chargez les variables nécessaires :

source openrc admin admin

4. Commandes de base pour la gestion OpenStack

4.1. Gestion des projets (tenants)

  • Lister les projets :

openstack project list
  • Créer un projet :

openstack project create --domain default myproject
  • Supprimer un projet :

openstack project delete myproject

4.2. Gestion des utilisateurs

  • Lister les utilisateurs :

openstack user list
  • Créer un utilisateur :

openstack user create --password mypassword myuser
  • Attribuer un rôle :

openstack role add --project myproject --user myuser member

4.3. Gestion des instances

  • Lister les instances :

openstack server list
  • Créer une instance :

openstack server create --image Ubuntu20.04 --flavor m1.small --network mynetwork --key-name mykey myvm

5. Résolution de problèmes avec la CLI

5.1. Vérifier le statut des services

  • Lister les services :

openstack service list
  • Logs des services :

journalctl -u devstack@n-api

5.2. Inspecter les ressources

  • Afficher les détails d’une instance :

openstack server show myvm
  • Vérifier les quotas :

openstack quota show myproject

6. Automatisation avec IaC (Terraform)

Pourquoi Terraform avec OpenStack ?

Terraform permet de définir des ressources cloud sous forme de code, garantissant la reproductibilité et la gestion centralisée.

Exemple de fichier Terraform

Voici un fichier main.tf :

provider "openstack" {
  auth_url    = "http://<OPENSTACK_AUTH_URL>/v3"
  region      = "RegionOne"
  domain_name = "Default"
  username    = "admin"
  password    = "admin"
  tenant_name = "admin"
}
resource "openstack_compute_instance_v2" "myvm" {
  name = "myvm"
  flavor_name = "m1.small"
  image_name = "Ubuntu20.04"
}

7. Bonnes pratiques

  1. Automatisation : Intégrez les commandes CLI dans des scripts CI/CD.

  2. Monitoring : Utilisez des outils comme Prometheus.

  3. Documentation : Gardez une trace des configurations versionnées.


8. Conclusion

Ce cours vous a guidé dans la découverte d’OpenStack avec DevStack, depuis les concepts fondamentaux jusqu’à l’automatisation avec Terraform. Vous êtes maintenant capable de gérer et automatiser une infrastructure OpenStack.

Last updated