Créer votre image de machine virtuelle (VM)

Cette page vous aide à créer une image de machine publique pour votre produit afin de l'exécuter sur Compute Engine.

Une image contient un bootloader, un système d'exploitation et un système de fichiers racine nécessaires au démarrage d'une instance. Vous pouvez configurer l'image avec un ensemble d'applications et de services pour votre produit. L'image est utilisée par les clients pour lancer une instance de machine virtuelle (VM) dans le cloud.

Nous vous recommandons de créer en premier lieu une image dans le projet de développement, puis de la déplacer vers le projet public une fois celle-ci vérifiée par l'ingénieur partenaire Google.

Avant de commencer

  1. Téléchargez le SDK Google Cloud.

Créer la VM de base du produit

Pour créer une image de machine personnalisée pour Google Cloud Marketplace, vous devez effectuer ces étapes (décrites dans les sections qui suivent) :

Créer une image de VM sous licence

Producer Portal

  1. Utilisez gcloud pour définir les valeurs par défaut du SDK Cloud :

    gcloud config set project <project_id>
    gcloud config set compute/zone <zone>
  2. Créez une instance principale utilisée pour installer votre logiciel, puis converties en image à utiliser sur Google Cloud Marketplace. Pour en savoir plus sur la création d'une instance, consultez la section Créer et démarrer une instance.

    gcloud compute instances create ${INSTANCE} --scopes
    https://www.googleapis.com/auth/cloud-platform 
  3. Installez et personnalisez votre logiciel. Incluez tous les scripts de démarrage requis, tels que ceux utilisés pour créer des identifiants d'autorisation.

    Pour créer des identifiants d'autorisation à l'aide de mots de passe aléatoires sécurisés, suivez les étapes décrites dans la section Créer des identifiants d'autorisation dans la section suivante.

  4. Ajoutez des fichiers contenant le texte de la licence Open Source et du code source sur la VM (le cas échéant). Reportez-vous au document de conformité Open Source pour connaître les exigences.

    Une fois que vous avez créé et personnalisé l'instance principale, préparez le disque nécessaire à la création d'une image de VM.

  5. Nettoyez votre disque. Créer une image de VM directement à partir de votre VM transfère également vos répertoires utilisateur et clés SSH vers les VM de vos clients. Vous devez donc nettoyer le disque d'entrée lors de la création de votre image de VM.

    Pour nettoyer le disque, procédez comme suit :

    1. Dans le menu Instances de VM de Compute Engine, cliquez sur le nom de l'instance que vous souhaitez nettoyer, puis sur Modifier.

    2. Faites défiler la page et décochez la case Supprimer le disque de démarrage lorsque l'instance est supprimée, puis cliquez sur Enregistrer. Utilisez le disque pour créer l'image.

    3. Supprimez la VM tout en conservant le disque. Vous êtes invité à confirmer la suppression. Ne sélectionnez pas l'option Supprimer également le disque de démarrage.

    4. Vous devez maintenant créer une instance de VM. Développez les options Gestion, disque, réseau et clés SSH.

    5. Sous disque, associez le disque de votre instance précédente en tant que disque de données supplémentaire. Vérifiez que l'option Conserver le disque est sélectionnée dans le champ Lors de la suppression d'une instance.

      Vous pouvez maintenant vous connecter en SSH à l'instance et supprimer tous les répertoires d'accueil ou autres fichiers temporaires créés pendant l'installation du logiciel. Vous devez installer le disque de données avant de pouvoir y accéder. Pour en savoir plus sur l'installation de disques, consultez la section Ajouter ou redimensionner des disques persistants.

    6. Lorsque vous avez terminé, arrêtez et supprimez l'instance tout en conservant votre disque de données mis à jour. Vous pouvez maintenant créer une image de VM à l'aide des instructions ci-dessous.

  6. Obtenez le nom de la licence de votre produit de VM dans le portail Producer en procédant comme suit:

    1. Ouvrez le portail des producteurs dans Google Cloud Console:

      https://console.cloud.google.com/producer-portal?project=YOUR_PROJECT_ID
      

      Remplacez YOUR_PROJECT_ID par l'ID de votre projet de développement ou public. Nous vous recommandons de commencer par créer une image dans votre projet de développement, puis de la déplacer vers votre projet public une fois que l'ingénieur partenaire Google aura vérifié l'image.

    2. Cliquez sur le nom de votre produit.

    3. Accédez à la section Package de déploiement. Notez le nom du champ Licence de VM. Vous utiliserez ce nom de licence lors de l'étape suivante lorsque vous créerez votre image.

  7. Créez une image sous licence en exécutant la commande gcloud suivante:

    gcloud compute images create CREATE_IMAGE_NAME \
    --project PUBLIC_PROJECT_NAME \
    --source-disk projects/DEV_PROJECT_NAME/zones/SOURCE_DISK_ZONE/disks/SOURCE_DISK_NAME \
    --licenses projects/PUBLIC_PROJECT_NAME/global/licenses/LICENSE_NAME \
    --description ADD_DESCRIPTION
    

    Remplacez l'élément suivant :

    • CREATE_IMAGE_NAME: nom de l'image, au format who-vmOS-image-date. Vous devez utiliser un nouveau nom unique à chaque fois que vous mettez à jour l'image de votre produit.
    • PUBLIC_PROJECT_NAME: ID du projet public pour Google Cloud Marketplace.
    • LICENSE_NAME: nom de la licence de votre produit de VM que vous avez noté à l'étape précédente.
    • DEV_PROJECT_NAME: ID du projet que vous avez créé pour le développement et les tests pour Google Cloud Marketplace.
    • SOURCE_DISK_ZONE: zone du disque source.
    • SOURCE_DISK_NAME : nom du disque source.
    • ADD_DESCRIPTION: description textuelle facultative de l'image en cours de création.

Portail des partenaires

  1. Utilisez gcloud pour définir les valeurs par défaut du SDK Cloud :

    gcloud config set project <project_id>
    gcloud config set compute/zone <zone>
  2. Créez une instance principale utilisée pour installer votre logiciel, puis converties en image à utiliser sur Google Cloud Marketplace. Pour en savoir plus sur la création d'une instance, consultez la section Créer et démarrer une instance.

    gcloud compute instances create ${INSTANCE} --scopes
    https://www.googleapis.com/auth/cloud-platform 
  3. Installez et personnalisez votre logiciel. Incluez tous les scripts de démarrage requis, tels que ceux utilisés pour créer des identifiants d'autorisation.

    Pour créer des identifiants d'autorisation à l'aide de mots de passe aléatoires sécurisés, suivez les étapes décrites dans la section Créer des identifiants d'autorisation dans la section suivante.

  4. Ajoutez des fichiers contenant le texte de la licence Open Source et du code source sur la VM (le cas échéant). Reportez-vous au document de conformité Open Source pour connaître les exigences.

    Une fois que vous avez créé et personnalisé l'instance principale, préparez le disque nécessaire à la création d'une image de VM.

  5. Nettoyez votre disque. Créer une image de VM directement à partir de votre VM transfère également vos répertoires utilisateur et clés SSH vers les VM de vos clients. Vous devez donc nettoyer le disque d'entrée lors de la création de votre image de VM.

    Pour nettoyer le disque, procédez comme suit :

    1. Dans le menu Instances de VM de Compute Engine, cliquez sur le nom de l'instance que vous souhaitez nettoyer, puis sur Modifier.

    2. Faites défiler la page et décochez la case Supprimer le disque de démarrage lorsque l'instance est supprimée, puis cliquez sur Enregistrer. Utilisez le disque pour créer l'image.

    3. Supprimez la VM tout en conservant le disque. Vous êtes invité à confirmer la suppression. Ne sélectionnez pas l'option Supprimer également le disque de démarrage.

    4. Vous devez maintenant créer une instance de VM. Développez les options Gestion, disque, réseau et clés SSH.

    5. Sous disque, associez le disque de votre instance précédente en tant que disque de données supplémentaire. Vérifiez que l'option Conserver le disque est sélectionnée dans le champ Lors de la suppression d'une instance.

      Vous pouvez maintenant vous connecter en SSH à l'instance et supprimer tous les répertoires d'accueil ou autres fichiers temporaires créés pendant l'installation du logiciel. Vous devez installer le disque de données avant de pouvoir y accéder. Pour en savoir plus sur l'installation de disques, consultez la section Ajouter ou redimensionner des disques persistants.

    6. Lorsque vous avez terminé, arrêtez et supprimez l'instance tout en conservant votre disque de données mis à jour. Vous pouvez maintenant créer une image de VM à l'aide des instructions ci-dessous.

  6. Pour obtenir le nom de la licence de votre produit sur le portail des partenaires, procédez comme suit:

    1. Cliquez sur l'ID de la solution pour votre produit.

    2. Cliquez pour modifier les métadonnées de la solution.

    3. Dans les métadonnées de la solution, dans la section Licences et tarifs, sous Nom de la licence, notez le nom de votre licence. Vous utiliserez ce nom de licence ultérieurement, lorsque vous utiliserez gcloud pour créer votre image.

  7. Créez une image sous licence en exécutant la commande gcloud suivante :

    gcloud compute images create CREATE_IMAGE_NAME \
    --project PUBLIC_PROJECT_NAME \
    --source-disk projects/DEV_PROJECT_NAME/zones/SOURCE_DISK_ZONE/disks/SOURCE_DISK_NAME \
    --licenses projects/PUBLIC_PROJECT_NAME/global/licenses/LICENSE_NAME \
    --description ADD_DESCRIPTION
    

Créer des identifiants d'autorisation

Si votre produit est un déploiement simple d'une instance de VM unique avec des règles de pare-feu de base, vous pouvez automatiquement inclure un mot de passe aléatoire sécurisé lorsque vous configurez directement votre package de déploiement.

Si vous envisagez de créer votre package de déploiement en utilisant l'Open Sourcempdev outil (recommandé dans la plupart des cas d'utilisation), vous pouvez utilisermpdev pour inclure automatiquement plusieurs mots de passe aléatoires sécurisés.

Pour savoir comment créer des identifiants d'autorisation, consultez la page Créer un package de déploiement.

Une fois le produit déployé, pour obtenir la valeur des mots de passe que vous avez créés, utilisez la commande suivante à partir de votre instance de VM:

curl -H "Metadata-Flavor: Google" \
http://metadata/computeMetadata/v1/instance/attributes/PASSWORD_NAME

Tester l'image de VM

Créez une instance de VM à l'aide de l'image que vous venez de créer, puis vérifiez qu'elle fonctionne.

Vérifiez également l'ID de licence, connectez-vous à l'instance en SSH et assurez-vous que les licences valides sont associées :

curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/licenses/?recursive=true

Vérifiez que Python 2.6 (ou version ultérieure) est installé :

python -V

Vérifiez que les packages suivants sont installés :

gcloud --version
gsutil --version
ssh -V
ps aux | grep sshd
curl -V
ps aux | grep dhcp

Assurez-vous qu'aucun autre répertoire utilisateur n'est installé sur l'instance, sauf le vôtre, et qu'il ne reste aucun répertoire utilisateur ni identifiant autre que le vôtre.