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 :
-
Installer le client OpenStack : Vérifiez que la CLI
openstackest disponible dans votre terminal :Si la commande est absente, installez-la comme décrit dans le guide d'installation d'OSC.openstack --version -
Charger les identifiants (fichier RC) : Téléchargez vos identifiants OpenStack (le fichier d'environnement
.shfourni par le Cloud Services Portal) et exécutez-le dans votre terminal pour configurer les variables d'environnement :Saisissez votre mot de passe lorsque demandé. Vérifiez la connexion avec :source project-openrc.shopenstack 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.
-
Créer le routeur :
openstack router create my-router -
Définir la passerelle externe : Connectez le routeur au réseau fournisseur externe (généralement nommé
publicdans la plupart des installations) :openstack router set --external-gateway public my-router -
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é.
-
Créer le groupe de sécurité :
openstack security group create my-security-group --description "Allows SSH and Ping" -
Ajouter une règle SSH (autoriser le port 22) :
openstack security group rule create --proto tcp --dst-port 22 my-security-group -
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 :
(par exemple, notezopenstack image listUbuntu 22.04 LTS) -
Lister les tailles/flavors disponibles :
(par exemple, notezopenstack flavor listm1.small) -
Lister les paires de clés SSH disponibles :
(Si vous n'avez pas encore importé de clé, vous pouvez importer votre clé publique avecopenstack keypair listopenstack 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 :
-
Allouer une IP flottante depuis le pool public :
(Cette commande renvoie une adresse IP, par exempleopenstack floating ip create public185.123.45.67) -
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