Cette page explique comment utiliser Infrastructure Manager pour prévisualiser le déploiement des ressources définies dans une configuration Terraform.
Une prévisualisation décrit les actions permettant d'activer une configuration Terraform spécifique. Avant de créer un déploiement ou de le mettre à jour, vous pouvez le prévisualiser pour vérifier les ressources qui doivent être provisionnées.
Une prévisualisation exécute la commande Terraform plan. Cette page suppose que vous connaissez Terraform. Pour en savoir plus, consultez
Terraform et Infrastructure Manager.
Pour créer une prévisualisation, la configuration Terraform doit être compatible avec l'une des versions Terraform compatibles.
Avant de commencer
- Activez Infra Manager.
- Assurez-vous de disposer des autorisations Identity and Access Management nécessaires pour créer des prévisualisations :
roles/config.admin. - Assurez-vous de disposer d'un compte de service disposant des autorisations nécessaires. Pour en savoir plus, consultez Configurer le compte de service.
- Identifiez la configuration Terraform à prévisualiser. Assurez-vous que cette configuration Terraform respecte les contraintes, y compris qu'elle ne contient pas de données sensibles.
Si vous souhaitez stocker la configuration Terraform dans un bucket de stockage, assurez-vous qu'elle est importée dans un bucket Cloud Storage. Pour en savoir plus, consultez Importer une configuration dans un bucket de stockage.
Un bucket de stockage vous permet de contrôler l'accès à la configuration. Vous pouvez également déployer une configuration Terraform stockée dans un dépôt Git ou sur votre machine locale.
Prévisualiser un nouveau déploiement
La configuration Terraform que vous prévisualisez peut se trouver dans un bucket de stockage ou dans un dépôt Git.
Prévisualiser à l'aide d'une configuration Terraform stockée dans un bucket Cloud Storage
Assurez-vous que la configuration Terraform est importée dans un bucket Cloud Storage. Pour en savoir plus, consultez Importer une configuration dans un bucket de stockage.
Un bucket de stockage vous permet de contrôler l'accès à la configuration. Vous pouvez également déployer une configuration Terraform stockée dans un dépôt Git ou sur votre machine locale.
Pour prévisualiser la mise à jour :
gcloud infra-manager previews create projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID \ --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \ --gcs-source gs://BUCKET_NAME/OBJECT_NAME \ --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \ --tf-version-constraint=TERRAFORM_VERSION \ --annotations="ANNOTATION_KEY=ANNOTATION_VALUE" --provider-source=SERVICE_MAINTAINEDRemplacez :
- PROJECT_ID par l'ID du projet dans lequel Infrastructure Manager s'exécute.
- LOCATION par l'emplacement où Infra Manager s'exécute. Pour obtenir la liste des emplacements valides, consultez Emplacements d'Infrastructure Manager.
- PREVIEW_ID par l'identifiant de prévisualisation que vous spécifiez. Pour en savoir plus sur les contraintes concernant l'identifiant de prévisualisation, consultez Nom de la prévisualisation.
- SERVICE_ACCOUNT par le nom du compte de service que vous utilisez pour appeler Infra Manager.
- SERVICE_ACCOUNT_PROJECT_ID est l'ID du projet du compte de service. Il s'agit généralement du même projet que celui dans lequel Infra Manager s'exécute.
- BUCKET_NAME par le nom du bucket de stockage dans lequel la configuration est stockée.
OBJECT_NAME par le nom d'objet du fichier de configuration. Cet objet peut être un répertoire ou un fichier ZIP, mais pas un fichier Terraform. Si vous utilisez la gestion des versions des objets, vous pouvez également spécifier le numéro de génération de l'objet. Pour en savoir plus, consultez Utiliser des objets versionnés.
Si le bucket de stockage est le chemin racine de la configuration Terraform, alors OBJECT_NAME est facultatif.
INPUT_1_NAME=VALUE et INPUT_2_NAME=VALUE par toutes les valeurs d'entrée de la configuration Terraform, y compris celles qui ne sont pas définies par défaut. Par exemple, vous pouvez spécifier le projet dans lequel vous déployez les ressources comme
project_id=my-project.Si toutes les valeurs d'entrée sont définies par défaut dans la configuration, cet indicateur est facultatif.
Facultatif : TERRAFORM_VERSION par la version de Terraform qu' Infra Manager doit utiliser pour créer le déploiement. Pour obtenir la liste des versions compatibles, consultez Version Terraform compatible. Si vous supprimez cet indicateur facultatif, la dernière version compatible de Terraform est utilisée.
Facultatif : ANNOTATION_KEY et ANNOTATION_VALUE représentent une paire clé-valeur de texte libre qui peut être associée à vos déploiements Infra Manager. Pour en savoir plus sur l'utilisation et les contraintes des annotations et des libellés, consultez Annotations et libellés.
- Facultatif : PROVIDER_SOURCE : détermine le fournisseur Terraform utilisé par le déploiement pour Google Cloud . Définissez la valeur sur
SERVICE_MAINTAINEDpour utiliser le fournisseur Terraform géré par Infra Manager. Omettez ce champ pour utiliser le fournisseur Terraform géré par HashiCorp. Pour en savoir plus, consultez Utiliser le fournisseur Terraform pour Google Cloud.
Les champs du déploiement, tels que la configuration Terraform, les variables et le compte de service, sont automatiquement fusionnés dans la prévisualisation, sauf si vous spécifiez de nouvelles valeurs dans la commande de prévisualisation.
Maintenant que vous avez créé une prévisualisation, vous pouvez exporter et afficher les résultats pour examiner le plan de déploiement.
Prévisualiser à l'aide d'une configuration Terraform stockée dans un dépôt Git
Lorsque vous mettez à jour un déploiement, certaines ressources existantes peuvent ne pas changer. La prévisualisation d'une mise à jour vous montre les ressources qui doivent être provisionnées ou supprimées, et celles qui ne doivent pas être modifiées.
Pour mettre à jour un déploiement stocké dans un dépôt Git :
Si vous utilisez un dépôt Git privé, assurez-vous d' être connecté à votre hôte GitHub et à votre dépôt GitHub à l'aide de Cloud Build pour fournir à Infra Manager l'accès à votre dépôt.
Pour prévisualiser le déploiement :
gcloud infra-manager previews create projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID \ --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \ --git-source-repo="GIT_REPO" \ --git-source-directory="DIRECTORY" \ --git-source-ref="REF" \ --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \ --tf-version-constraint=TERRAFORM_VERSION \ --annotations="ANNOTATION_KEY=ANNOTATION_VALUE" --provider-source=SERVICE_MAINTAINED
Remplacez :
- PROJECT_ID par l'ID du projet dans lequel Infrastructure Manager s'exécute.
- LOCATION par l'emplacement où Infra Manager s'exécute. Pour obtenir la liste des emplacements valides, consultez Emplacements d'Infrastructure Manager.
- PREVIEW_ID par l'identifiant de prévisualisation que vous spécifiez. Pour en savoir plus sur les contraintes concernant l'identifiant de prévisualisation, consultez Nom de la prévisualisation.
- SERVICE_ACCOUNT par le nom du compte de service que vous utilisez pour appeler Infra Manager.
- SERVICE_ACCOUNT_PROJECT_ID est l'ID du projet du compte de service. Il s'agit généralement du même projet que celui dans lequel Infra Manager s'exécute.
- GIT_REPO par le dépôt Git.
- DIRECTORY : le répertoire contenant la configuration Terraform.
- REF : la référence Git de la configuration. La référence est facultative. Si vous ne spécifiez pas la référence, la branche configurée par défaut pour le dépôt Git est utilisée.
INPUT_1_NAME=VALUE et INPUT_2_NAME=VALUE par toutes les valeurs d'entrée de la configuration Terraform, y compris celles qui ne sont pas définies par défaut. Par exemple, vous pouvez spécifier le projet dans lequel vous déployez les ressources comme
project_id=my-project.Si toutes les valeurs d'entrée sont définies par défaut dans la configuration, cet indicateur est facultatif.
Facultatif : TERRAFORM_VERSION par la version de Terraform qu' Infra Manager doit utiliser pour créer le déploiement. Pour obtenir la liste des versions compatibles, consultez Version Terraform compatible. Si vous supprimez cet indicateur facultatif, la dernière version compatible de Terraform est utilisée.
Facultatif : ANNOTATION_KEY et ANNOTATION_VALUE représentent une paire clé-valeur de texte libre qui peut être associée à vos déploiements Infra Manager. Pour en savoir plus sur l'utilisation et les contraintes des annotations et des libellés, consultez Annotations et libellés.
- Facultatif : PROVIDER_SOURCE : détermine le fournisseur Terraform utilisé par le déploiement pour Google Cloud . Définissez la valeur sur
SERVICE_MAINTAINEDpour utiliser le fournisseur Terraform géré par Infra Manager. Omettez ce champ pour utiliser le fournisseur Terraform géré par HashiCorp. Pour en savoir plus, consultez Utiliser le fournisseur Terraform pour Google Cloud.
Les champs du déploiement, tels que la configuration Terraform, les variables et le compte de service, sont automatiquement fusionnés dans la prévisualisation, sauf si vous spécifiez de nouvelles valeurs dans la commande de prévisualisation.
Maintenant que vous avez créé une prévisualisation, vous pouvez exporter et afficher les résultats pour examiner le plan de déploiement.
Après avoir prévisualisé un déploiement, vous pouvez le créer pour provisionner les ressources. Pour en savoir plus, consultez Déployer des ressources.
Étape suivante
- Exporter et afficher les résultats de la prévisualisation
- Utiliser Infra Manager pour déployer des ressources.
- Automatiser les déploiements.
- En savoir plus sur Terraform avec Infra Manager.