openstack image create "ubuntu-22.04-custom" \
--file ubuntu-22.04-custom.qcow2 \
--disk-format qcow2 \
--container-format bare \
--private
Ce document explique comment importer une image personnalisée dans OpenStack afin de l’utiliser pour créer des instances.
Il explique aussi un point important : pour que la clé SSH soit injectée automatiquement dans la machine au démarrage, l’image doit être prévue pour le cloud, généralement via cloud-init.
Avant de commencer, assurez-vous :
d’avoir créé un Application Credential (identifiant d’application) depuis l’interface web Horizon ;
d’avoir installé la CLI OpenStack dans un environnement virtuel Python (venv) ;
d’être authentifié auprès du cloud avec cet Application Credential.
Voir la documentation https://docs.meso.umontpellier.fr/fr/CLOUD/cli
Avoir une image disque compatible, par exemple au format :
qcow2
raw
Une image custom OpenStack ne suffit pas à elle seule pour permettre la connexion SSH avec la clé injectée depuis OpenStack.
Pour que cela fonctionne automatiquement, il faut que l’image :
ait cloud-init installé et activé ;
soit capable de lire les métadonnées fournies par OpenStack ;
crée ou configure l’utilisateur par défaut pour y déposer la clé publique SSH.
|
Si votre image ne contient pas cloud-init, la clé SSH fournie au moment de la création de l’instance ne sera généralement pas ajoutée automatiquement dans En pratique, il est recommandé de :
Ces images sont déjà préparées pour OpenStack et permettent en général d’injecter automatiquement la clé SSH dans l’utilisateur par défaut. |
Selon l’image utilisée, l’utilisateur par défaut peut varier :
ubuntu pour Ubuntu Cloud ;
debian pour Debian ;
cloud-user pour certaines distributions RHEL / CentOS / Rocky / Alma ;
fedora pour Fedora.
|
OpenStack n’invente pas cet utilisateur : il dépend de l’image utilisée. Si vous importez une image personnalisée, vérifiez quel utilisateur existe réellement dans le système. |
Le plus simple est d’utiliser une image cloud officielle déjà compatible OpenStack.
Avantages :
cloud-init déjà installé ;
gestion automatique des métadonnées ;
injection automatique de la clé SSH ;
configuration réseau souvent prête pour le cloud.
Si vous créez votre propre image, il faut au minimum :
installer cloud-init ;
activer les services associés ;
vérifier la présence d’un utilisateur par défaut ;
s’assurer que l’image utilise les sources de données compatibles OpenStack.
Exemple de composants généralement nécessaires dans l’image :
cloud-init
cloud-initramfs-growroot (selon distribution)
support DHCP côté réseau
agent ou configuration console série si nécessaire
Dans Horizon :
Aller dans Project > Compute > Images.
Cliquer sur Create Image.
Renseigner :
Image Name ;
Image Source = Image File ;
choisir le fichier image ;
Format = par exemple QCOW2 ;
éventuellement l’architecture ou des propriétés supplémentaires.
Valider la création.
Exemple de paramètres classiques :
Nom : ubuntu-22.04-custom
Format : QCOW2
Visibility : Private
Minimum Disk : selon votre image
Minimum RAM : selon votre besoin