Configurer votre image de VM pour le déploiement Terraform

Cet article explique comment terminer la configuration et envoyer votre image de VM pour à 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, comme les VM uniques avec des règles de pare-feu de base, mais il n'est pas compatible avec certaines telles que des déploiements avec plusieurs VM et des ressources hors calcul. Si vous avez besoin de fonctionnalités non compatibles avec la configuration guidée, vous pouvez utiliser de configuration manuelle pour créer votre package de déploiement personnaliser un package existant en lui 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 par la suite passez à la configuration manuelle de votre package de déploiement, cliquez sur Accéder à la configuration manuelle

Effectuer la configuration guidée

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

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

  2. Sous Terraform configuration (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 libellée Créez 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 à la Autorisations Identity and Access Management (IAM) 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.

  3. Vérifiez que vous avez Activer la gestion des versions des objets pour votre bucket Cloud Storage.

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

  5. Sous Choisissez le type de machine, vous devez spécifier une zone par défaut. Minimum machine type (Type de machine minimal) et Default machine type (Type de machine par défaut) de votre 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 un site et un administrateur. URL (nom d'utilisateur et mot de passe) auxquelles les utilisateurs peuvent 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. Si vous le souhaitez, sous Définir les prochaines étapes, vous pouvez 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, vous pouvez cliquer sur Modifier pour apporter des modifications, puis sur Générer pour Générez à nouveau votre package de déploiement en y appliquant ces modifications.

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

  12. Une fois que Cloud Marketplace a validé votre package de déploiement , cliquez sur Publier pour commencer à tester votre déploiement. d'un package.

Terminer la configuration manuelle

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

Indiquez s'il faut utiliser le module Terraform par défaut ou 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 votre propre des modèles Terraform à votre client. Vous pouvez choisir de fournir ces modèles dans un format que les clients peuvent déployer à l'aide de l'interface de ligne de commande (CLI), ou des métadonnées supplémentaires permettant aux clients de déployer des modules directement Cloud Marketplace.

Pour spécifier si vos clients doivent utiliser la configuration Terraform par défaut ou personnalisée et, pour les modules Terraform personnalisés, sur la manière dont vous voulez que vos clients dans le module, procédez comme suit:

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

  2. Dans Configuration Terraform, sous Type, sélectionnez Par défaut. Personnalisé (déploiement via la CLI) ou personnalisé (déploiement via l'interface utilisateur).

Conditions requises pour les modules Terraform personnalisés

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

  • Votre module personnalisé doit comporter un module que Cloud Marketplace peut utiliser pour vérifier qu'elle 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 le projet ID 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 le La copie de l'image appartenant à Cloud Marketplace peut être remplacée dans le lorsque votre produit de VM est publié.

  • Votre module ne doit pas dépendre de modules externes qui ne sont pas inclus dans le package.

  • 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 projet. Pour Pour voir un exemple, reportez-vous à goog_cm_deployment_name dans 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 voir un exemple, consultez la exemple de module Terraform personnalisé.

  • Votre module ne doit pas dépendre de la compatibilité Approvisionneurs 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 Deployment package (Package de déploiement).

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

    Pour permettre 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 au nom de l'image de VM produit, dans le format projects/YOUR_PROJECT/global/images/YOUR_IMAGE

  5. Sous Spécifiez l'emplacement de votre 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 libellée Créez 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 déploiement cliquez sur Configure (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'interface utilisateur, vous devez créer et ajouter que Cloud Marketplace utilise pour analyser correctement votre module et les afficher dans l'interface utilisateur de votre client.

Pour créer et ajouter ces métadonnées, vous pouvez utiliser la bibliothèque Open Source Outil CLI CFT Pour utiliser le kit Cloud Foundation afin de créer et d'ajouter des métadonnées à vos modules personnalisés, effectuez la en suivant les étapes ci-dessous:

  1. Installez l'outil CFT CLI. Pour plus d'informations, consultez le Documentation de la CLI CFT Nous vous recommandons de spécifier la valeur de VERSION sur latest. définissez 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 Validations spécifiques à Google Cloud, telles que l'obligation pour les clients de uniquement les réseaux de cloud privé virtuel (VPC) qui existent déjà 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 n'exécute pas avec succès. 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 la 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 voudrez peut-être le faire si votre produit doit inclure un module de test distinct pour vérifier des fonctionnalités. Si vous incluez ce dossier, votre module doit transmettre la commande suivante doit s'exécuter correctement:

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

  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

Après avoir validé et testé votre déploiement, cliquez sur Publiez pour envoyer l'ensemble de votre produit pour examen et publication le Cloud Marketplace. Pour en savoir plus, consultez Envoyez votre produit.