IBM Cloud Docs
Création d'une image personnalisée Linux

Création d'une image personnalisée Linux

Vous pouvez créer votre propre image Linuxpersonnalisée à importer dans IBM Cloud® Virtual Private Cloud. Vous pouvez ensuite utiliser l'image personnalisée pour déployer un serveur virtuel ou un serveur bare metal dans l'infrastructure IBM Cloud® Virtual Private Cloud.

Vous pouvez commencer par un modèle d'image de l'infrastructure IBM Cloud classique. Pour plus d'informations, voir Migration d'un serveur virtuel à partir de l'infrastructure classique. Saviez-vous que vous pouvez également créer une image personnalisée d'un volume de démarrage attaché à une instance au moment de l'importation? Pour plus d'informations, voir A propos de la création d'une image à partir d'un volume.

Toutes les images personnalisées doivent répondre aux exigences suivantes:

  • Contenir un seul fichier ou un seul volume.
  • Être au format qcow2 ou vhd.
  • Être activé pour cloud-init ou démarrer à l'aide d'ESXi kickstart.
  • La taille ne doit pas dépasser 250 Go.
  • La taille minimale est de 10 Go. Pour toute image de moins de 10 Go, la taille est arrondie à 10 Go.

Pour créer des images personnalisées sécurisées basées sur l'exécution à l'aide de l'option IBM Cloud Object Storage, voir Préparation de la charge de travail. Pour plus d'informations sur la création d'images sécurisées basées sur l'exécution, voir IBM Secure Execution for Linux.

Pour les images Linux , le type de clé SSH Ed25519 peut être utilisé uniquement si le serveur SSH du système d'exploitation prend en charge ce type de clé. Pour plus d'informations, voir Initiation aux clés SSH.

Procédez comme suit pour vous assurer que vous pouvez déployer correctement votre propre image personnalisée Linux dans l'environnement d'infrastructure IBM Cloud VPC. N'oubliez pas que vous ne pouvez pas créer d'image à partir d'un volume de démarrage crypté (image à partir d'un volume) qui ne fait pas 100 Go. L'opération est bloquée.

Etape 1 - Commencer par un seul fichier image au format qcow2 ou VHD

Si vous créez votre propre image Linux personnalisée, commencez par un seul fichier image au format qcow2 ou VHD. Il peut être utile de commencer par une image de fournisseur activée pour le cloud.

Les journaux du noyau sont importants pour le débogage des problèmes liés à l'amorçage. Pour vous assurer que les journaux du noyau sont imprimés sur la console série, utilisez l'argument de ligne de commande du noyau console=ttyS0. En outre, les paramètres de noyau nomodeset et nofb sont utilisés pour résoudre les problèmes liés à l'affichage lors du processus d'amorçage pour les noyaux plus anciens qui ont été publiés avant la mi-2021. Les nouveaux noyaux utilisent le paramètre de mode vidéo dans le noyau.

Étape 2 - Vérifier les pilotes virtio

  1. Assurez-vous que les pilotes virtio sont installés sur votre image de système d'exploitation, ainsi que tout code requis par virtio. Les pilotes de réseau Virtio sont requis pour activer la mise en réseau. Vérifiez si les pilotes virtio sont installés dans le noyau, en exécutant la commande suivante :

    grep -i virtio /boot/config-$(uname -r)
    

    Recherchez VIRTIO_BLK et VIRTIO_NET dans la sortie. Si ces lignes sont absentes, le pilote virtio n'est pas intégré au noyau.

  2. Si les lignes VIRTIO_BLK et VIRTIO_NET sont présentes, vérifiez que les pilotes sont présents dans le système de fichiers racine temporaire en exécutant la commande suivante :

    lsinitrd /boot/initramfs-$(uname -r).img | grep virtio
    

    Si vous utilisez un système d'exploitation Debian, utilisez la commande suivante:

    lsinitramfs /boot/initrd.img-$(uname -r) | grep virtio
    

    Vérifiez que le pilote virtio blk et ses dépendances virtio.ko, virtio_pci et virtio_ring sont présents. Si les dépendances virtio ne sont pas présentes, vous devez récupérer le système de fichiers racine.

Étape 3 - L'interface réseau est configurée pour l'auto-configuration

Si des interfaces réseau sont définies dans l'image de l'invité, assurez-vous qu'au moins une interface réseau est définie sur auto-configuration. Toutes les interfaces ne peuvent pas être désignées pour une configuration manuelle. Généralement, l'interface est définie pour utiliser DHCP. Pour plus d'informations sur la configuration de DHCP, voir la documentation de votre distribution Linux.

Etape 4-Vérifiez que l'image est activée pour cloud-init

Vérifiez que votre image est activée pour cloud-init. Cloud-init version 0.7.9 ou ultérieure est requis.

  1. Pour déterminer si cloud-init est installé, exécutez la commande suivante : cloud-init --version

    • Dans certains cas, cloud-init peut être installé mais pas dans votre environnement PATH.
    • Pour trouver le chemin d'accès à cloud-init on ExecStart, exécutez la commande suivante : systemctl cat cloud-init
  2. Pour installer cloud-init, utilisez l'une des commandes suivantes.

    • Pour Ubuntu ou Debian, exécutez la commande suivante: apt-get install cloud-init
    • Pour CentOS ou Red Hat, exécutez la commande suivante: yum install cloud-init
  3. Si la propriété datasources_list existe dans /etc/cloud/cloud.cfg, vérifiez qu'elle ne contient que NoCloud ou supprimez entièrement la propriété datasources_list. ConfigDrive n'est pas pris en charge. Pour plus d'informations sur les sources de données, voir Sources de données. IBM Cloud Les images cloud-init sont créées pour l'environnement à l'aide de la source de données NoCloud pour fournir les métadonnées.

    Une unité par bloc est fournie. Consultez l'exemple suivant.

    blkid
    /dev/vdb: UUID="2023-03-15-16-50-02-00" LABEL="cidata" TYPE="iso9660"
    

    Cette unité par bloc est trouvée par cloud-init et contient les fichiers suivants.

    • ID-instance de métadonnées: INSTANCE_ID local-hostname: NAME
    • user-data Données utilisateur facultatives qui ont été fournies lors de la création de l'instance. Pour plus d'informations, voir Données utilisateur.
    • vendor-data Fichier au format MIME contenant l'autorisation SSH de configuration de cloud dérivée des clés SSH qui ont été fournies lors de la création de l'instance et des informations d'initialisation supplémentaires.
  4. Dans le fichier /etc/cloud/cloud.cfg, vérifiez que la section cloud_final_modules inclut le module scripts-vendor et qu'il est activé. Par défaut, Red Hat Enterprise Linux et CentOS n'incluent pas le module scripts-vendor requis pour mettre à disposition des instances dans l'infrastructure IBM Cloud VPC. Vous devez activer le module scripts-vendor pour mettre à disposition une instance de serveur virtuel IBM Cloud VPC avec l'image personnalisée Linux.

    Pour les images Red Hat Enterprise Linux (RHEL), les paquets suivants sont inclus par défaut dans l'image de base et sont nécessaires au bon fonctionnement de cloud-init : subscription-manager, ethtool, et rpm. En outre, assurez-vous que ces services sont activés : cloud-init-local.service, cloud-init.service, cloud-config.service et cloud-final.service.

  5. Veillez à configurer votre image de manière à utiliser SSH pour vous connecter à votre serveur virtuel.

L'utilisateur par défaut pour les images personnalisées basées sur RHEL est cloud-user. Pour plus d'informations sur l'activation de cloud-init, voir Configuration de cloud-init.

Étape 5 - Taille du disque de démarrage

Veillez à ce que l'image ait une taille de disque de démarrage comprise entre 10 et 250 Go. Les images de moins de 10 Go sont arrondies à 10 Go.

Si vous personnalisez un serveur virtuel pour le migrer à partir de l'infrastructure classique, revenez à Migrer un serveur virtuel à partir de l'infrastructure classique et poursuivez les étapes de migration.

Etape 6-Téléchargement d'une image dans IBM Cloud Object Storage

Téléchargez votre image dans IBM Cloud Object Storage. Sur la page Objets de votre panier IBM Cloud® Object Storage, cliquez sur Télécharger. Vous pouvez utiliser le plug-in de transfert à grande vitesse Aspera pour télécharger des images d'une taille supérieure à 200 Mo. Pour plus d'informations sur le téléchargement vers IBM Cloud Object Storage, voir Téléchargement de données.

Etapes suivantes

Lorsque votre image personnalisée Linux est créée et disponible dans IBM Cloud Object Storage, vous pouvez importer l'image personnalisée dans VPC et intégrer une image de serveur virtuel pour VPC. Veillez à accorder l'accès à IBM Cloud Object Storage pour importer des images.

Si vous prévoyez d'utiliser un catalogue privé pour gérer vos images personnalisées, vous devez d'abord importer cette image dans IBM Cloud VPC, puis intégrer l'image du serveur virtuel dans un catalogue privé.

Une fois l'image personnalisée importée, vous pouvez l'utiliser pour déployer un serveur virtuel dans l'infrastructure IBM Cloud® Virtual Private Cloud.