Configurer votre image de VM pour le déploiement Terraform

Cet article explique comment terminer la configuration et envoyer votre image de VM pour le déploiement à l'aide de Terraform.

Déterminer comment créer votre package de déploiement

Nous vous recommandons d'utiliser l'option de configuration guidée de Producer Portal pour créer votre package de déploiement directement dans la console Google Cloud.

L'option de configuration guidée est compatible avec les produits de VM simples, tels que les déploiements de VM uniques avec des règles de pare-feu de base, mais elle n'est pas compatible avec certaines fonctionnalités complexes, telles que les déploiements avec plusieurs VM et des ressources non de calcul. Si vous avez besoin de fonctionnalités que la configuration guidée n'est pas compatible, vous pouvez utiliser l'option de configuration manuelle pour créer votre package de déploiement ou personnaliser un package existant en y ajoutant des fonctionnalités supplémentaires.

Basculer entre la configuration guidée et la configuration manuelle

Si vous utilisez l'option de configuration guidée de Producer Portal et souhaitez ensuite passer à la configuration manuelle de votre package de déploiement, cliquez sur Accéder à la configuration manuelle.

Finaliser la configuration guidée

Pour terminer la configuration et envoyer un package de déploiement simple à l'aide de la console Google Cloud, procédez comme suit :

  1. Dans Producer Portal, accédez à la section Package de déploiement.

  2. Sous Configuration Terraform, à côté du champ de saisie intitulé Bucket Cloud Storage, cliquez sur Parcourir.

    Si vous avez déjà créé un bucket Cloud Storage, sélectionnez-le ici.

    Si vous n'avez pas de bucket Cloud Storage, cliquez sur l'icône Créer un bucket. Lorsque vous créez un bucket, vous :

    • Sélectionnez un nom pour le bucket.

    • Spécifiez la ou les régions dans lesquelles le bucket stocke les données.

    • Indiquez la classe de stockage pour vos données.

    • Déterminez le niveau de précision à appliquer aux autorisations IAM (Identity and Access Management) pour les données du bucket.

    • Configurez des paramètres avancés facultatifs, tels que le chiffrement ou les règles de conservation des données.

  3. Assurez-vous d'avoir activé la gestion des versions d'objets pour votre bucket Cloud Storage.

  4. Pour enregistrer les paramètres de votre bucket et continuer à configurer votre package de déploiement, cliquez sur Configurer.

  5. Sous Choisir le type de machine, vous devez spécifier une Zone par défaut, un Type de machine minimal et un Type de machine par défaut pour votre produit de VM, ainsi que la taille et le type de son disque de démarrage.

  6. Sous Spécifier le système d'exploitation, vous devez indiquer le nom et la version. de l'OS utilisé par votre image de VM, ainsi que le numéro de version de la VM l'image.

  7. Si vous le souhaitez, sous Configurer l'accès à la VM, vous pouvez spécifier les URL de site et d'administrateur, ainsi qu'un nom d'utilisateur et un mot de passe que les utilisateurs peuvent utiliser pour accéder à la VM après le déploiement.

  8. Sous Configurer la mise en réseau, vous pouvez éventuellement spécifier des paramètres pour Transfert IP et configuration des règles de pare-feu.

  9. Sous Définir les prochaines étapes, vous pouvez éventuellement fournir des instructions pour aux utilisateurs de votre produit afin de les guider dans la prise en main de votre produit. Ils pourront voir ces instructions une fois qu'ils auront déployé votre produit.

  10. Une fois les étapes précédentes effectuées, cliquez sur Generate (Générer) pour créer votre package de déploiement.

    Si vous devez apporter des modifications supplémentaires à votre package de déploiement ultérieurement, vous pouvez cliquer sur Modifier pour apporter des modifications, puis sur Générer pour régénérer votre package de déploiement une fois les modifications appliquées.

  11. Validez le package de déploiement dans Producer Portal.

  12. Une fois la validation de votre package de déploiement par Cloud Marketplace terminée, cliquez sur Publier pour commencer à tester votre package de déploiement.

Finaliser la configuration manuelle

Cette section explique comment utiliser l'option de configuration manuelle pour créer un package de déploiement et l'envoyer pour examen.

Spécifier si vous souhaitez utiliser le module Terraform par défaut ou un module personnalisé

Vous pouvez choisir d'utiliser l'option par défaut ou personnalisée module Terraform lorsqu'ils déploient votre produit.

Si vous choisissez d'utiliser le module Terraform par défaut, Google Cloud fournit à vos clients avec un code Terraform généré automatiquement qu'ils peuvent utiliser pour déployer votre produit.

Si vous choisissez d'utiliser un module Terraform personnalisé, vous devez fournir vos propres modèles Terraform à votre client. Vous pouvez choisir de fournir ces modèles sous une forme que les clients peuvent déployer à l'aide de l'interface de ligne de commande (CLI), ou avec des métadonnées supplémentaires qui leur permettent de déployer des modules directement depuis la place de marché Cloud.

Pour spécifier si vos clients doivent utiliser le module Terraform par défaut ou un module Terraform personnalisé, et, pour les modules Terraform personnalisés, comment vous souhaitez que vos clients déploient le module, procédez comme suit :

  1. Dans Producer Portal, accédez à la section Package de déploiement.

  2. Sous Configuration Terraform, sous Type, sélectionnez Par défaut, Personnalisé (déploiement de la CLI) ou Personnalisé (déploiement de l'UI).

Conditions requises pour les modules Terraform personnalisés

Si vous choisissez d'utiliser des modules Terraform personnalisés, ceux-ci doivent respecter les conditions suivantes:

  • Votre module personnalisé doit comporter un module que Cloud Marketplace peut utiliser pour vérifier qu'il répond aux exigences. Pour en savoir plus, consultez Vérifiez que votre module est validé.

  • Votre module doit comporter une variable nommée project_id, qui stocke l'ID de projet que vos clients utilisent pour déployer le module.

  • Vous devez spécifier des références aux noms de vos images au format Terraform variables, avec le format projects/PROJECT_NAME/global/images/IMAGE_NAME La valeur de default doit être définie sur le nom de votre image de VM afin que la copie de l'image appartenant à Cloud Marketplace puisse être remplacée dans le module lorsque votre produit de VM est publié.

  • Votre module ne doit pas dépendre de modules externes qui ne sont pas empaquetés avec lui.

  • Votre module ne doit utiliser que les fournisseurs approuvés suivants :

    • archive
    • cloud-init
    • dns
    • google
    • google-beta
    • http
    • null
    • random
    • time
    • tls

Pour obtenir un exemple de module personnalisé répondant à ces exigences, consultez la exemple de module Terraform personnalisé.

Exigences supplémentaires concernant les modules Terraform personnalisés pour le déploiement de l'interface utilisateur

Si votre module personnalisé est compatible avec le déploiement d'interface utilisateur, il doit répondre aux critères suivants exigences supplémentaires:

  • Votre module doit contenir une variable appelée goog_cm_deployment_name. Cloud Marketplace utilise cette variable pour nommer les rôles déploiements sur leur page de déploiement. Vous devez utiliser cette variable pour éviter les conflits de noms de ressources entre plusieurs déploiements dans un même projet. Pour en savoir plus, consultez goog_cm_deployment_name dans l'exemple de module Terraform personnalisé.

  • Dans le fichier metadata.display.yaml, vous devez spécifier ET_GCE_DISK_IMAGE comme type xGoogleProperty pour toutes les variables d'image. Par exemple, voir metadata.display.yaml dans exemple de module Terraform personnalisé.

  • Si votre produit contient des images avec plusieurs VM ou des images compatibles avec plusieurs processeurs vous devez ajouter enumValueLabels pour que vos clients puissent sélectionnez l'image de VM à utiliser. Pour obtenir un exemple, consultez l'exemple de module Terraform personnalisé.

  • Votre module ne doit pas dépendre de la compatibilité Approvisionnements Terraform

Étapes supplémentaires pour les modules Terraform personnalisés

Si vous avez choisi d'utiliser des modules Terraform personnalisés, vous devez effectuer les opérations suivantes : étapes supplémentaires pour configurer votre image de VM pour le déploiement:

  1. Dans Producer Portal, accédez à la section Package de déploiement.

  2. Sous Terraform configuration (Configuration Terraform), sous Image Variables (Variables d'image), cliquez sur Ajoutez une variable.

    Pour activer le déploiement Terraform de votre produit, vous devez activé l'utilisation des images appartenant à Marketplace. Cloud Marketplace utilise la variable que vous ajoutez ici pour permuter les version Marketplace de votre image de VM lorsqu'un client déploie votre produit.

  3. Dans le champ de texte Variable d'image, saisissez le nom de votre variable, par exemple "image".

  4. Dans votre module Terraform personnalisé, définissez la valeur par défaut de la variable que vous avez créée à l'étape précédente sur le nom de l'image de VM de votre produit, au format projects/YOUR_PROJECT/global/images/YOUR_IMAGE.

  5. Sous Spécifier l'emplacement de l'objet GCS, cliquez sur Parcourir.

    Si vous avez déjà créé un bucket Cloud Storage, sélectionnez-le ici.

    Si vous n'avez pas de bucket Cloud Storage, cliquez sur l'icône Créer un bucket. Lorsque vous créez un bucket, vous :

    • Sélectionnez un nom pour le bucket.

    • Spécifiez la ou les régions dans lesquelles le bucket stocke les données.

    • Indiquez la classe de stockage pour vos données.

    • Déterminez le niveau de précision à appliquer aux autorisations IAM (Identity and Access Management) pour les données du bucket.

    • Configurer des paramètres avancés facultatifs, tels que le chiffrement ou les données règles de conservation.

  6. Assurez-vous que la gestion des versions d'objets est activée pour votre bucket Cloud Storage.

  7. Pour enregistrer les paramètres de votre bucket et continuer à configurer votre package de déploiement, cliquez sur Configurer.

  8. Sous Rôles requis, spécifiez les rôles IAM que vos clients peuvent utiliser. pour déployer votre produit.

(Déploiement de l'interface utilisateur uniquement) Créer des métadonnées pour votre module Terraform personnalisé

Pour que votre module personnalisé prenne en charge le déploiement de l'UI, vous devez créer et ajouter des métadonnées que Cloud Marketplace utilise pour analyser correctement votre module et l'afficher dans l'UI pour votre client.

Pour créer et ajouter ces métadonnées, vous pouvez utiliser l'outil CLI CFT Open Source. Pour utiliser CFT afin de créer et d'ajouter des métadonnées à vos modules personnalisés, procédez comme suit :

  1. Installez l'outil CFT CLI. Pour en savoir plus, consultez la documentation de la CLI CFT. Nous vous recommandons de définir la valeur de VERSION sur latest et de définir PLATFORM sur l'une des valeurs suivantes :

    • linux

    • windows

    • darwin

  2. Exécutez la commande suivante :

     cft blueprint metadata -p TF_PACKAGE_PATH -q -d --nested=false
    

    Dans la commande précédente, l'option -p fournit un chemin d'accès pour le fichier package, l'option -q génère des métadonnées sans avoir besoin d'informations pour une dépôt distant, l'option -d génère le metadata.display.yaml et l'option --nested=false génère des métadonnées pour le module racine, en ignorant les modules du dossier modules/.

Une fois les étapes précédentes effectuées, l'outil CLI CFT génère deux nouveaux fichiers : metadata.yaml et metadata.display.yaml.

Personnaliser les métadonnées de votre module Terraform personnalisé

Cloud Marketplace utilise le fichier metadata.display.yaml pour personnaliser que les clients utilisent pour déployer votre produit via l'UI. Si vous souhaitez personnaliser ce formulaire. Après avoir créé vos métadonnées, vous pouvez modifier les valeurs des les champs dans metadata.display.yaml. Pour en savoir plus sur les de personnalisation, consultez la documentation Open Source Documentation BlueprintUI ou consultez les Schéma du BlueprintUI

Nous vous recommandons d'utiliser l'extension GooglePropertyExtensions pour modifier vos métadonnées. GooglePropertyExtensions vous permet d'utiliser des validations spécifiques à Google Cloud, par exemple pour exiger que les clients ne puissent sélectionner que des réseaux cloud privé virtuel (VPC) déjà existants dans leur projet. Pour voir un exemple, consultez la exemple de module Terraform personnalisé.

Valider les métadonnées de votre module personnalisé

Pour valider les métadonnées de votre module personnalisé, exécutez la commande suivante :

cft blueprint metadata -p TF_PACKAGE_PATH -v

Dans la commande précédente, l'option -p fournit un chemin d'accès pour le fichier package, et l'option -v valide tous les fichiers de métadonnées sous le chemin d'accès fourni en fonction du schéma BlueprintMetadata.

Vérifier que votre module est validé

Votre module personnalisé réussit la vérification si la commande suivante s'exécute avec succès:

terraform plan -var project_id=YOUR_PROJECT -var-file marketplace_test.tfvars

Dans la commande précédente, marketplace_test.tfvars est un fichier de variables Terraform utilisé uniquement par Cloud Marketplace, uniquement pour cette vérification de ce module. Si votre modèle déclare des variables qui n'ont pas de valeur par défaut et que vous ne définissez pas de valeur pour ces variables, la commande ne s'exécute pas correctement. Pour vous assurer que la commande s'exécute correctement, vous pouvez créer un marketplace_test.tfvars pour définir les valeurs des variables que vos déclare le modèle. Pour obtenir un exemple de fichier marketplace_test.tfvars, consultez l'exemple de module Terraform personnalisé.

(Facultatif) (Déploiement via la CLI uniquement) Inclure un module de test

Si votre module personnalisé est compatible avec le déploiement via la CLI, vous pouvez choisir incluent un dossier nommé examples/marketplace_test. Vous pouvez le faire si votre produit doit inclure un module de test distinct pour vérifier ses fonctionnalités. Si vous incluez ce dossier, la commande suivante doit s'exécuter correctement pour que votre module passe la validation :

terraform -chdir=examples/marketplace_test plan -var project_id=YOUR_PROJECT

Valider et tester votre déploiement

Après avoir créé et configuré votre package de déploiement, vous devez valider et la tester avant que l'équipe Cloud Marketplace puisse l'examiner et l'approuver pour l'activer.

  1. Dans Producer Portal, accédez à la section Deployment package (Package de déploiement).

  2. Cliquez sur Valider. Le processus de validation peut prendre jusqu'à deux heures terminée, et vous pouvez quitter l’écran pendant qu’elle s’exécute.

  3. Une fois la validation terminée, cliquez sur Aperçu du déploiement pour tester votre déploiement.

Étape suivante

Une fois que vous avez validé et testé votre déploiement, vous pouvez cliquer sur Publier pour envoyer votre produit complet à l'examen et à la publication sur Cloud Marketplace. Pour en savoir plus, consultez la page Envoyer votre produit.