Aller au contenu

Déployer une instance VM via la CLI OpenStack

Ce guide vous accompagne pas à pas dans le déploiement d'une machine virtuelle (VM) dans votre environnement OpenStack à l'aide de l'interface en ligne de commande (CLI) OpenStack. Nous allons créer un réseau privé, un sous-réseau, un routeur connecté au réseau fournisseur externe, ainsi qu'un groupe de sécurité doté des règles de pare-feu essentielles.

Vue d'ensemble de l'architecture (pile réseau)

Le diagramme ci-dessous montre comment le réseau externe, le routeur, le réseau privé/sous-réseau, le groupe de sécurité et l'instance VM sont interconnectés :

flowchart TD
    Internet([Internet / External Access]) <-->|FIP Mapping| FIP["Floating IP (e.g., 185.123.45.67)"]
    FIP <-->|Bound to| Router
    Router <-->|1:1 NAT from floating to private IP| VM

    subgraph Provider_Net ["Provider Network"]
        ExtNet["External Network (public)"]
    end

    subgraph Project_Infr ["Project Infrastructure"]
        Router["Router (my-router)"]

        subgraph Priv_Net ["Private Network (my-network)"]
            Subnet["Subnet (my-subnet) <br> CIDR: 192.168.100.0/24"]

            subgraph Sec_Group ["Security Group (my-security-group)"]
                VM["VM Instance (my-first-vm) <br> Private IP (e.g., 192.168.100.15)"]
            end
        end
    end

    ExtNet <-->|External Gateway| Router
    Router <-->|Subnet Interface| Subnet

    classDef highlight fill:#d4edda,stroke:#28a745,stroke-width:2px;
    classDef router fill:#fff3cd,stroke:#ffc107,stroke-width:2px;
    classDef ext fill:#f8d7da,stroke:#dc3545,stroke-width:2px;
    classDef net fill:#e2e3e5,stroke:#383d41,stroke-dasharray: 5 5;
    class VM highlight;
    class Router router;
    class ExtNet ext;
    class Subnet net;

1. Prérequis

Avant de commencer, assurez-vous que les prérequis suivants sont remplis :

  1. Installer le client OpenStack : Vérifiez que la CLI openstack est disponible dans votre terminal :

    openstack --version
    
    Si la commande est absente, installez-la comme décrit dans le guide d'installation d'OSC.

  2. Charger les identifiants (fichier RC) : Téléchargez vos identifiants OpenStack (le fichier d'environnement .sh fourni par le Cloud Services Portal) et exécutez-le dans votre terminal pour configurer les variables d'environnement :

    source project-openrc.sh
    
    Saisissez votre mot de passe lorsque demandé. Vérifiez la connexion avec :
    openstack token issue
    


2. Guide pas à pas

Étape 2.1 : Créer un réseau privé

Commencez par créer un réseau privé de couche 2 dans lequel résideront vos instances VM.

openstack network create my-network

Étape 2.2 : Créer un sous-réseau

Créez un sous-réseau dans le réseau que vous venez de créer. Nous définirons une plage d'adresses IP (CIDR) et ajouterons des serveurs DNS publics (par exemple Google DNS) afin que vos VM puissent résoudre les noms de domaine.

openstack subnet create \
  --network my-network \
  --subnet-range 192.168.100.0/24 \
  --dns-nameserver 8.8.8.8 \
  --dns-nameserver 8.8.4.4 \
  my-subnet

Étape 2.3 : Créer et configurer un routeur

Pour donner à votre réseau privé un accès à Internet (et inversement), vous avez besoin d'un routeur virtuel.

  1. Créer le routeur :

    openstack router create my-router
    

  2. Définir la passerelle externe : Connectez le routeur au réseau fournisseur externe (généralement nommé public dans la plupart des installations) :

    openstack router set --external-gateway public my-router
    

  3. Attacher le sous-réseau au routeur : Ajoutez votre sous-réseau privé comme interface du routeur :

    openstack router add subnet my-router my-subnet
    

Étape 2.4 : Configurer un groupe de sécurité

Le groupe de sécurité fait office de pare-feu pour votre VM. Par défaut, tout le trafic entrant est bloqué.

  1. Créer le groupe de sécurité :

    openstack security group create my-security-group --description "Allows SSH and Ping"
    

  2. Ajouter une règle SSH (autoriser le port 22) :

    openstack security group rule create --proto tcp --dst-port 22 my-security-group
    

  3. Ajouter une règle ICMP (autoriser le ping) :

    openstack security group rule create --proto icmp my-security-group
    


3. Rassembler les ressources pour le déploiement de la VM

Pour démarrer une instance VM, vous devez connaître les noms ou les ID des ressources (image, flavor, paire de clés SSH) que vous souhaitez utiliser. Listez-les avec ces commandes :

  • Lister les images de systèmes d'exploitation disponibles :

    openstack image list
    
    (par exemple, notez Ubuntu 22.04 LTS)

  • Lister les tailles/flavors disponibles :

    openstack flavor list
    
    (par exemple, notez m1.small)

  • Lister les paires de clés SSH disponibles :

    openstack keypair list
    
    (Si vous n'avez pas encore importé de clé, vous pouvez importer votre clé publique avec openstack keypair create --public-key ~/.ssh/id_rsa.pub my-key)


4. Lancer l'instance (VM)

Une fois les noms ou ID des ressources nécessaires rassemblés, lancez la machine virtuelle. Veillez à spécifier le réseau privé et le groupe de sécurité :

openstack server create \
  --flavor m1.small \
  --image "Ubuntu 22.04 LTS" \
  --key-name my-key \
  --network my-network \
  --security-group my-security-group \
  my-first-vm

Vous pouvez suivre l'état de création avec la commande suivante :

openstack server list


5. Exposer la VM sur Internet (IP flottante)

Comme votre VM se trouve sur un réseau privé, elle n'est pas directement joignable depuis l'extérieur. Pour la rendre accessible, nous associons une IP flottante :

  1. Allouer une IP flottante depuis le pool public :

    openstack floating ip create public
    
    (Cette commande renvoie une adresse IP, par exemple 185.123.45.67)

  2. Associer l'IP flottante à votre VM :

    openstack server add floating ip my-first-vm 185.123.45.67
    

Vous pouvez maintenant vous connecter à votre instance via SSH :

ssh ubuntu@185.123.45.67