Déployer une infrastructure à l'aide d'Infrastructure Manager

Cette page explique comment utiliser Infrastructure Manager pour provisionner un ensemble de ressourcesGoogle Cloud définies dans une configuration Terraform.

Pour prévisualiser un déploiement sans provisionner de ressources, consultez Prévisualiser un déploiement.

Vous pouvez effectuer un déploiement sur plusieurs projets et plusieurs emplacements. Le compte de service doit disposer d'autorisations pour les ressources et les projets dans lesquels les ressources sont déployées. Pour obtenir la liste des autorisations, consultez Contrôle des accès avec IAM.

Dans cette page, nous partons du principe que vous connaissez Terraform. Pour en savoir plus, consultez Terraform et Infra Manager.

Avant de commencer

  1. Activez Infra Manager.
  2. Assurez-vous de disposer des autorisations IAM nécessaires pour créer des déploiements : roles/config.admin.
  3. Assurez-vous de disposer d'un compte de service avec les autorisations nécessaires. Pour en savoir plus, consultez Configurer le compte de service.
  4. Identifiez la configuration Terraform à déployer. Assurez-vous que cette configuration Terraform respecte les contraintes. Plus précisément, assurez-vous que la configuration ne contient pas de données sensibles.
  5. Si vous souhaitez prévisualiser le déploiement avant de configurer les ressources, consultez Prévisualiser un déploiement.
  6. Confirmez le quota de votre organisation pour les produits associés à l'infrastructure prévue. Vous pouvez rencontrer des erreurs de déploiement si l'infrastructure prévue dépasse le quota de votre organisation pour les produits utilisés par votre déploiement. Pour en savoir plus, consultez Quotas et limites.

  7. Infra Manager utilise Cloud Build pour créer, mettre à jour ou prévisualiser un déploiement. La création et la mise à jour des déploiements ont un délai d'expiration de deux heures, tandis que l'aperçu d'un déploiement a un délai d'expiration d'une heure.

    Si vous gérez plusieurs ressources dans une même configuration qui dépasse cette limite, vous devez diviser votre configuration en plusieurs déploiements.

Accorder des autorisations spécifiques à la configuration

Pour déployer les ressources Google Cloud spécifiées dans la configuration Terraform, le compte de service que vous utilisez pour appeler Infra Manager doit disposer des autorisations requises spécifiques aux ressources que vous déployez.

Ces autorisations s'ajoutent à celles requises pour utiliser le service Infra Manager.

Pour savoir comment accorder des autorisations pour les ressources Google Cloud et vous assurer que vous avez accès aux projets nécessaires, consultez Configurer le compte de service.

Connecter votre dépôt et votre hôte Git privés à Cloud Build

Si vous déployez une configuration Terraform à partir d'un dépôt Git privé, vous devez connecter votre hôte et votre dépôt Git à Cloud Build.

Créer un déploiement à l'aide d'une configuration Terraform

Vous pouvez utiliser Infra Manager pour déployer une configuration Terraform de plusieurs manières :

  • Recommandé : Utilisez Infra Manager dans la console Google Cloud pour sélectionner une source, afficher les détails du déploiement, prévisualiser et déployer des configurations Terraform. Vous pouvez utiliser Infra Manager depuis la console Google Cloud pour déployer à partir de buckets Cloud Storage et de dépôts Git.
  • Utilisez Infra Manager dans Google Cloud CLI pour déployer des configurations Terraform à partir de :
    • Buckets Cloud Storage
    • Dépôts Git
    • Annuaires locaux

Consultez Modules et plans Terraform pour Google Cloud pour obtenir des exemples et des modèles de configurations Terraform que vous pouvez utiliser avec Infra Manager.

Sélectionnez l'onglet correspondant au workflow de votre choix pour en savoir plus sur la création d'un déploiement.

Console

Cette section explique comment déployer une configuration Terraform à l'aide d'Infra Manager dans la console Google Cloud .

  1. Dans la console Google Cloud , accédez à la page Infra Manager.

    Accéder à Infra Manager

  2. Cliquez sur Créer pour créer un déploiement.
  3. Sur la page Détails du déploiement, définissez les paramètres initiaux de votre déploiement.

    Remplacez :

    • ID de déploiement : dans le champ ID de déploiement, saisissez un nom descriptif pour votre déploiement. Pour en savoir plus sur les contraintes de dénomination, consultez la documentation sur le nom du déploiement.
    • Région : choisissez une région prise en charge dans la liste déroulante.
    • Version Terraform : sélectionnez une version Terraform compatible dans le menu déroulant. La liste des versions de Terraform disponibles est renseignée automatiquement en fonction de la région que vous avez sélectionnée. Par défaut, la dernière version compatible du niveau sans frais (1.5.7) est sélectionnée. La sélection d'une version payante (telle que 1.16.5) entraîne des frais de déploiement et de gestion. Pour en savoir plus, consultez la section Versions de Terraform compatibles.
    • Compte de service : sélectionnez un compte de service existant ou créez-en un. Infra Manager valide automatiquement les autorisations en fonction de l'infrastructure décrite dans votre configuration Terraform. Pour en savoir plus sur l'utilisation des comptes de service et d'Infra Manager, consultez Configurer le compte de service.
    • Source de la configuration Terraform : cliquez sur le bouton d'activation pour sélectionner Git ou Cloud Storage comme source de la configuration Terraform que vous souhaitez déployer.
      • Pour Git, remplacez :
        • Dépôt Git : indiquez l'URL, la branche ou le tag d'un dépôt Git public ou privé.
          Si vous fournissez un dépôt Git privé, assurez-vous d'avoir connecté votre hôte et votre dépôt à Cloud Build.
        • Répertoire Git (facultatif) : répertoire du dépôt Git contenant la configuration Terraform.
        • Facultatif : Référence Git : référence Git de la configuration. Si vous ne spécifiez pas de référence, la branche configurée par défaut pour le dépôt Git est utilisée.
      • Pour Bucket Cloud Storage, remplacez :
        • Source : nom du bucket de stockage où la configuration est stockée.

    Cliquez sur Continuer.

  4. Sur la page Détails Terraform, utilisez les champs Clé et Valeur pour renseigner la liste des valeurs d'entrée dans votre configuration Terraform.

    Les valeurs peuvent être n'importe quelle valeur d'entrée de la configuration Terraform, y compris celles qui ne sont pas définies par défaut. Si toutes vos valeurs d'entrée sont définies par défaut dans la configuration Terraform, elles sont facultatives. Cliquez sur Continuer.

  5. Sur la page Détails avancés, définissez des paramètres facultatifs pour votre déploiement.

    Remplacez :

    • Étiquettes : les étiquettes et les annotations sont des paires clé-valeur de texte libre. Vous pouvez les utiliser pour joindre des informations arbitraires associées à la ressource. Pour en savoir plus, consultez la documentation sur les annotations.
    • Pool de nœuds de calcul : ressource de pool de nœuds de calcul dans laquelle le job Cloud Build sera exécuté. Le format du pool de nœuds de calcul est projects/{project}/locations/{location}/workerPools/{workerPoolId}.
    • Bucket Cloud Storage d'artefacts : emplacement des journaux et des artefacts Cloud Build dans Cloud Storage. Le format du chemin d'accès est gs://{bucket}/{folder}.
  6. Cliquez sur Créer un déploiement pour lancer le déploiement de votre configuration Terraform. Sur la page Déploiements, votre déploiement sera ajouté à la liste, avec son état.
  7. Pour en savoir plus sur votre déploiement, sélectionnez-le pour accéder à la page Détails du déploiement.
  8. Opération réussie ! Vous avez déployé votre configuration Terraform à l'aide d'Infra Manager.

gcloud CLI

Cette section décrit le déploiement d'une configuration Terraform stockée dans un bucket Cloud Storage. Un bucket de stockage vous permet de contrôler l'accès à la configuration.

  1. Assurez-vous que la configuration Terraform se trouve dans un bucket Cloud Storage. Pour en savoir plus, consultez Importer une configuration dans un bucket de stockage.
  2. Si le bucket de stockage se trouve dans un projet différent de celui dans lequel vous exécutez Infra Manager, vous devez vous assurer que le compte de service d'Infra Manager dispose d'une autorisation de lecture sur le bucket. Pour en savoir plus, consultez Configurer le compte de service.

    Si le bucket de stockage se trouve dans le même projet qu'Infra Manager, l'autorisation de lecture sur le bucket est déjà activée.

  3. Déployez la configuration Terraform :

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --gcs-source gs://BUCKET_NAME/OBJECT_NAME \
            --quota-validation=QUOTA_VALIDATION \
            --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 : ID du projet dans lequel Infra Manager s'exécute.
  • LOCATION : emplacement d'exécution d'Infra Manager. Pour obtenir la liste des emplacements valides, consultez Emplacements Infra Manager.
  • DEPLOYMENT_ID : identifiant de déploiement que vous spécifiez. Pour en savoir plus sur les contraintes liées à l'identifiant de déploiement, consultez Nom du déploiement.
  • 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.
  • SERVICE_ACCOUNT : nom du compte de service que vous utilisez pour appeler Infra Manager.
  • BUCKET_NAME : nom du bucket de stockage dans lequel la configuration est stockée.
  • OBJECT_NAME : 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 avec des versions gérées.

    Si le bucket de stockage est le chemin d'accès racine de la configuration Terraform, OBJECT_NAME est facultatif.

  • Facultatif : QUOTA_VALIDATION : valeur qui détermine si la validation des quotas pour les ressources de vos fichiers de configuration Terraform est activée ou appliquée lorsque vous créez un déploiement. Les valeurs possibles sont les suivantes :
    • ENABLED : activez la validation des quotas de calcul pour les ressources dans les fichiers de configuration Terraform. Offre une visibilité sur les ressources dont les quotas sont insuffisants.
    • ENFORCED : appliquez la validation des quotas pour que votre déploiement échoue si les quotas disponibles sont insuffisants pour l'infrastructure définie dans votre fichier de configuration Terraform.

    Si QUOTA_VALIDATION n'est pas défini, la validation des quotas sur les fichiers de configuration Terraform sera désactivée. Il s'agit de la valeur par défaut. La validation des quotas s'applique aux ressources limitées Google Cloud . Pour en savoir plus, consultez la page Quotas et limites.

  • INPUT_1_NAME et INPUT_2_NAME : 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 suit : project_id=my-project.

    Si toutes les valeurs d'entrée sont définies par défaut dans la configuration, cette option est facultative.

  • Facultatif :TERRAFORM_VERSION : version de Terraform qu'Infra Manager doit utiliser pour créer le déploiement. Consultez la section Version de Terraform compatible pour obtenir la liste des versions compatibles. Si vous supprimez cette option facultative, la dernière version de Terraform compatible avec le niveau sans frais (1.5.7) est utilisée par défaut. Pour utiliser une version payante (telle que 1.16.5), vous devez spécifier explicitement la version.
  • 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 pour Google Cloud que le déploiement utilise. Définissez cette option sur SERVICE_MAINTAINED pour 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.

gcloud CLI

Cette section explique comment utiliser une configuration Terraform stockée dans un dépôt Git.

  1. Assurez-vous d'avoir installé Git.
  2. Si votre configuration Terraform est stockée dans un dépôt Git privé, assurez-vous que votre hôte et votre dépôt Git sont connectés à Cloud Build.
  3. Déployez la configuration Terraform :

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --git-source-repo="GIT_REPO" \
            --git-source-directory="DIRECTORY" \
            --git-source-ref="REF" \
            --quota-validation=QUOTA_VALIDATION \
            --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 : ID du projet dans lequel Infra Manager s'exécute.
  • LOCATION : emplacement d'exécution d'Infra Manager. Pour obtenir la liste des emplacements valides, consultez Emplacements Infra Manager.
  • DEPLOYMENT_ID : identifiant de déploiement que vous spécifiez. Pour en savoir plus sur les contraintes liées à l'identifiant de déploiement, consultez Nom du déploiement.
  • 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.
  • SERVICE_ACCOUNT : nom du compte de service que vous utilisez pour appeler Infra Manager.
  • GIT_REPO : dépôt Git.
  • DIRECTORY : répertoire contenant la configuration Terraform.
  • Facultatif : REF : référence Git de la configuration. La référence est facultative. Si vous ne spécifiez pas de référence, la branche configurée par défaut pour le dépôt Git est utilisée.
  • Facultatif : QUOTA_VALIDATION : valeur qui détermine si la validation des quotas pour les ressources de vos fichiers de configuration Terraform est activée ou appliquée lorsque vous créez un déploiement. Les valeurs possibles sont les suivantes :
    • ENABLED : activez la validation des quotas de calcul pour les ressources dans les fichiers de configuration Terraform. Offre une visibilité sur les ressources dont les quotas sont insuffisants.
    • ENFORCED : appliquez la validation des quotas pour que votre déploiement échoue si les quotas disponibles sont insuffisants pour l'infrastructure définie dans votre fichier de configuration Terraform.

    Si QUOTA_VALIDATION n'est pas défini, la validation des quotas sur les fichiers de configuration Terraform sera désactivée. Il s'agit de la valeur par défaut. La validation des quotas s'applique aux ressources limitées Google Cloud . Pour en savoir plus, consultez la page Quotas et limites.

  • INPUT_1_NAME et INPUT_2_NAME : 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 suit : project_id=my-project.

    Si toutes les valeurs d'entrée sont définies par défaut dans la configuration, cette option est facultative.

  • Facultatif : TERRAFORM_VERSION : version de Terraform qu'Infra Manager doit utiliser pour créer le déploiement. Consultez la section Version de Terraform compatible pour obtenir la liste des versions compatibles. Si vous supprimez cette option facultative, la dernière version de Terraform disponible dans le niveau sans frais (1.5.7) est utilisée par défaut. Pour utiliser une version payante (telle que 1.16.5), vous devez spécifier explicitement la version.
  • 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 pour Google Cloud que le déploiement utilise. Définissez cette option sur SERVICE_MAINTAINED pour 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.

gcloud CLI

Cette section explique comment utiliser une configuration Terraform stockée sur votre ordinateur local.

  1. Si vous utilisez Cloud Shell, vous devez importer la configuration dans Cloud Shell. Pour en savoir plus, consultez Gérer des fichiers avec Cloud Shell.
  2. Déployez la configuration Terraform :

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --local-source="LOCAL_DIRECTORY" \
            --quota-validation=QUOTA_VALIDATION \
            --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 : ID du projet dans lequel Infra Manager s'exécute.
  • LOCATION : emplacement d'exécution d'Infra Manager. Pour obtenir la liste des emplacements valides, consultez Emplacements Infra Manager.
  • DEPLOYMENT_ID : identifiant de déploiement que vous spécifiez. Pour en savoir plus sur les contraintes liées à l'identifiant de déploiement, consultez Nom du déploiement.
  • 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.
  • SERVICE_ACCOUNT : nom du compte de service que vous utilisez pour appeler Infra Manager.
  • LOCAL_DIRECTORY : répertoire local stockant la configuration Terraform. Si vous utilisez Cloud Shell, il s'agit du répertoire dans Cloud Shell où la configuration est stockée.
  • Facultatif : QUOTA_VALIDATION : valeur qui détermine si la validation des quotas pour les ressources de vos fichiers de configuration Terraform est activée ou appliquée lorsque vous créez un déploiement. Les valeurs possibles sont les suivantes :
    • ENABLED : activez la validation des quotas de calcul pour les ressources dans les fichiers de configuration Terraform. Offre une visibilité sur les ressources dont les quotas sont insuffisants.
    • ENFORCED : appliquez la validation des quotas pour que votre déploiement échoue si les quotas disponibles sont insuffisants pour l'infrastructure définie dans votre fichier de configuration Terraform.

    Si QUOTA_VALIDATION n'est pas défini, la validation des quotas sur les fichiers de configuration Terraform sera désactivée. Il s'agit de la valeur par défaut. La validation des quotas s'applique aux ressources limitées Google Cloud . Pour en savoir plus, consultez la page Quotas et limites.

  • INPUT_1_NAME et INPUT_2_NAME : 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 suit : project_id=my-project.

    Si toutes les valeurs d'entrée sont définies par défaut dans la configuration, cette option est facultative.

  • Facultatif :TERRAFORM_VERSION : version de Terraform qu'Infra Manager doit utiliser pour créer le déploiement. Consultez la section Version de Terraform compatible pour obtenir la liste des versions compatibles. Si vous supprimez cette option facultative, la dernière version de Terraform compatible avec le niveau sans frais (1.5.7) est utilisée par défaut. Pour utiliser une version payante (telle que 1.16.5), vous devez spécifier explicitement la version.
  • 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 pour Google Cloud que le déploiement utilise. Définissez cette option sur SERVICE_MAINTAINED pour 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.

Étapes suivantes