Déployer un VPC avec Terraform

Découvrez comment utiliser Infrastructure Manager pour déployer un cloud privé virtuel (VPC).

Ce guide de démarrage rapide utilise une configuration Terraform stockée dans un dépôt GitHub public. La configuration définit le VPC à provisionner.

Avant de commencer

  1. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  2. Installez la Google Cloud CLI.

  3. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  4. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  5. Créez ou sélectionnez un Google Cloud projet.

    Rôles requis pour sélectionner ou créer un projet

    • Sélectionner un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
    • Créer un projet : pour créer un projet, vous devez disposer du rôle Créateur de projet (roles/resourcemanager.projectCreator), qui contient l'autorisation resourcemanager.projects.create. Découvrez comment attribuer des rôles.
    • Créez un Google Cloud projet :

      gcloud projects create PROJECT_ID

      Remplacez PROJECT_ID par le nom du Google Cloud projet que vous créez.

    • Sélectionnez le Google Cloud projet que vous avez créé :

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre Google Cloud projet.

  6. Vérifiez que la facturation est activée pour votre Google Cloud projet.

  7. Activez l'API Infrastructure Manager :

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin), qui contient l' serviceusage.services.enable autorisation. Découvrez comment attribuer des rôles.

    gcloud services enable config.googleapis.com
  8. Configurez l'authentification :

    1. Assurez-vous de disposer du rôle IAM Créateur de comptes de service (roles/iam.serviceAccountCreator) et du rôle Administrateur de projet IAM (roles/resourcemanager.projectIamAdmin). Découvrez comment attribuer des rôles.
    2. Créez le compte de service :

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Remplacez SERVICE_ACCOUNT_NAME par le nom que vous souhaitez donner au compte de service.

    3. Attribuez le rôle IAM au compte de service :roles/config.agent

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent

      Remplacez les éléments suivants :

      • SERVICE_ACCOUNT_NAME : nom du compte de service.
      • PROJECT_ID : ID du projet dans lequel vous avez créé le compte de service.
  9. Installez la Google Cloud CLI.

  10. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  11. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  12. Créez ou sélectionnez un Google Cloud projet.

    Rôles requis pour sélectionner ou créer un projet

    • Sélectionner un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
    • Créer un projet : pour créer un projet, vous devez disposer du rôle Créateur de projet (roles/resourcemanager.projectCreator), qui contient l'autorisation resourcemanager.projects.create. Découvrez comment attribuer des rôles.
    • Créez un Google Cloud projet :

      gcloud projects create PROJECT_ID

      Remplacez PROJECT_ID par le nom du Google Cloud projet que vous créez.

    • Sélectionnez le Google Cloud projet que vous avez créé :

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre Google Cloud projet.

  13. Vérifiez que la facturation est activée pour votre Google Cloud projet.

  14. Activez l'API Infrastructure Manager :

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin), qui contient l' serviceusage.services.enable autorisation. Découvrez comment attribuer des rôles.

    gcloud services enable config.googleapis.com
  15. Configurez l'authentification :

    1. Assurez-vous de disposer du rôle IAM Créateur de comptes de service (roles/iam.serviceAccountCreator) et du rôle Administrateur de projet IAM (roles/resourcemanager.projectIamAdmin). Découvrez comment attribuer des rôles.
    2. Créez le compte de service :

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Remplacez SERVICE_ACCOUNT_NAME par le nom que vous souhaitez donner au compte de service.

    3. Attribuez le rôle IAM au compte de service :roles/config.agent

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent

      Remplacez les éléments suivants :

      • SERVICE_ACCOUNT_NAME : nom du compte de service.
      • PROJECT_ID : ID du projet dans lequel vous avez créé le compte de service.

Accorder des autorisations pour les ressources dans la configuration

Vous avez accordé les autorisations nécessaires pour exécuter Infra Manager, mais vous devez également accorder des autorisations spécifiques aux ressources décrites dans la configuration que vous déployez.

Accordez des autorisations pour le VPC, qui est la ressource définie dans la configuration Terraform.

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --role=roles/compute.networkAdmin

Remplacez les éléments suivants :

  • SERVICE_ACCOUNT_NAME : nom du compte de service.
  • PROJECT_ID : ID de votre projet.

Prévisualiser le déploiement

Avant de créer un déploiement, vous pouvez le prévisualiser. Vous pouvez utiliser cet aperçu pour vérifier les ressources qui doivent être provisionnées.

La commande suivante comporte quatre valeurs renseignées qui n'ont pas de valeur par défaut. Ces valeurs sont les suivantes : l'ID de votre projet, le nom du compte de service, l'emplacement us-central1 et le nom quickstart-vpc pour le réseau que vous créez.

Pour créer un aperçu, utilisez la commande suivante :

    gcloud infra-manager previews create projects/PROJECT_ID/locations/us-central1/previews/quickstart-preview \
        --service-account projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
        --git-source-repo=https://github.com/terraform-google-modules/terraform-google-network \
        --git-source-directory=modules/vpc \
        --git-source-ref=main \
        --input-values=project_id=PROJECT_ID,network_name=quickstart-vpc

Une fois l'aperçu créé, vous pouvez examiner les résultats. Ce guide de démarrage rapide ignore cette étape, mais vous pouvez consulter Exporter et afficher les résultats de l'aperçu si vous souhaitez en savoir plus.

Créer un déploiement

Utilisez Infra Manager pour créer un déploiement. Cela signifie qu'Infra Manager provisionne les ressources définies dans la configuration Terraform.

La configuration de ce guide de démarrage rapide comporte quatre valeurs qui n'ont pas de valeur par défaut. La commande suivante ajoute ces valeurs : l'ID de votre projet, le nom du compte de service, l'emplacement us-central1 et le nom quickstart-vpc pour le réseau que vous créez.

gcloud infra-manager deployments apply projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment \
    --service-account=projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --git-source-repo=https://github.com/terraform-google-modules/terraform-google-network \
    --git-source-directory=modules/vpc \
    --git-source-ref=main \
    --input-values=project_id=PROJECT_ID,network_name=quickstart-vpc

Une fois le déploiement terminé, le message suivant s'affiche :

Creating the deployment...done

Le VPC est maintenant créé et configuré comme décrit dans la configuration.

Afficher les résultats de compilation dans Cloud Build

Pour afficher la tâche Cloud Build qu'Infra Manager a utilisée pour créer le déploiement, ouvrez la page Historique de compilation dans la Google Cloud console :

Ouvrir la page Historique de compilation

Afficher l'état du déploiement

Une fois le déploiement terminé, vous pouvez afficher sa description pour examiner les informations le concernant, y compris l'état.

Affichez la description du déploiement :

gcloud infra-manager deployments describe projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment

La sortie contient des détails sur le déploiement, y compris l'horodatage du déploiement, le nom de la dernière révision et l'état.

L'état affiché est ACTIVE.

Afficher les détails du VPC provisionné

Affichez les détails du VPC provisionné :

gcloud infra-manager resources list --revision=projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment/revisions/REVISION_ID

Remplacez REVISION_ID par l'ID de la dernière révision. Cet ID est r-0, sauf si vous avez effectué plusieurs déploiements. Vous pouvez voir l'ID de la dernière révision dans la description du déploiement de la section précédente.

Afficher le VPC dans la console

Affichez le VPC dans la console :

Accéder aux réseaux VPC

Le VPC nommé quickstart-vpc s'affiche. Il s'agit du VPC provisionné par Infra Manager.

Effectuer un nettoyage

Pour éviter que les ressources utilisées sur cette page ne soient facturées sur votre Google Cloud compte, assurez-vous de supprimer celles dont vous n'avez plus besoin.

Supprimer le VPC

Supprimez le VPC et les métadonnées concernant le déploiement :

gcloud infra-manager deployments delete projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment

(Facultatif) Supprimer le projet

Si vous avez déployé la solution dans un nouveau Google Cloud projet et que vous n'en avez plus besoin , supprimez-le en procédant comme suit :

  1. Dans la Google Cloud console, accédez à la page Gérer les ressources.

    Accéder à la page "Gérer les ressources"

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Lorsque vous y êtes invité, saisissez l'ID du projet, puis cliquez sur Arrêter.

Étape suivante