Déployez vos fondations à l'aide de Terraform téléchargé depuis la console.

Le guide de mise en place d'une configuration cloud de base dans la console Google Cloud permet aux administrateurs d'entreprise de configurer une base Google Cloud adaptée aux entreprises à l'aide d'une interface guidée, et de la déployer directement depuis la console Google Cloud, ou de la télécharger au format Terraform.

Les administrateurs peuvent configurer une entité organisationnelle, des utilisateurs et des groupes. associer ou configurer un compte de facturation ; et configurer la hiérarchie des ressources (dossiers et projets), les stratégies IAM, la mise en réseau initiale, ainsi que la journalisation et la surveillance centralisées.

Lorsque les clients téléchargent leur configuration sous la forme Terraform, la console génère un fichier Terraform pour un déploiement ultérieur. Ce tutoriel fournit des instructions pour déployer le fichier Terraform téléchargé et prend en compte les ressources d'infrastructure précédemment déployées.

Avant de commencer

Passez en revue les bonnes pratiques d'utilisation de Terraform, qui incluent des consignes pour un développement efficace avec Terraform auprès des membres de l'équipe et des flux de travail.

Si vous avez déjà déployé la configuration de base en cliquant sur le bouton "Déployer" dans la console et que vous souhaitez maintenant déployer une configuration Terraform téléchargée à l'aide de votre propre pipeline, vous devez effectuer les opérations suivantes :

  • Téléchargez le fichier d'état Terraform généré par la console.
  • Incluez le fichier d'état téléchargé dans votre propre processus de pipeline.

Pour en savoir plus, consultez la page Déployer Terraform téléchargé après le déploiement à partir de la console.

Déployer Terraform avec Cloud Shell

Terraform est préinstallé et pré-authentifié dans Cloud Shell pour vous permettre de démarrer rapidement.

  1. Dans le guide de configuration de la console, cliquez sur Télécharger en tant que Terraform, puis enregistrez la configuration.
  2. Ouvrez Cloud Shell.
  3. Dans Cloud Shell, créez un répertoire et accédez-y:

    mkdir cloud-foundation-example && cd cloud-foundation-example
    
  4. Importez la configuration Terraform que vous avez téléchargée à l'étape 1.

    Dans le menu à trois points Plus de Cloud Shell, sélectionnez Importer, puis cliquez sur Sélectionner des fichiers pour sélectionner la configuration Terraform. Définissez le répertoire de destination sur le dossier que vous avez créé à l'étape précédente, puis cliquez sur Importer.

  5. Vérifiez que vous êtes bien dans le répertoire cloud-foundation-example.

  6. Créez un bucket Cloud Storage pour stocker l'état distant Terraform. Un état distant permet à Terraform d'utiliser des magasins d'objets tels que Cloud Storage pour stocker des informations sur l'état de votre infrastructure gérée par Terraform. Cette configuration offre des avantages tels que la délégation d'équipe et le verrouillage d'état.

    Pour créer le bucket Cloud Storage, exécutez la commande suivante :

    gcloud storage buckets create gs://tf-state-PROJECT_ID
    
  7. Définissez une configuration de backend Terraform dans un fichier backend.tf et remplacez PROJECT_ID par l'ID de projet que vous avez utilisé à l'étape précédente. Pour plus de détails, consultez la section Stocker l'état Terraform dans Cloud Storage.

    # backend.tf
    terraform {
          backend "gcs" {
            bucket  = "tf-state-PROJECT_ID"
            prefix  = "terraform/state"
          }
    }
    
  8. Exécutez terraform init. Ce processus initialise votre répertoire de travail, qui contient les fichiers de configuration Terraform et le backend.

  9. Exécutez la commande terraform plan pour afficher les ressources créées par Terraform. Exemple de résultat :

    ...
    Plan: 6 to add, 0 to change, 0 to destroy.
    Note: You didn't use the -out option to save this plan, so Terraform can't
    guarantee to take exactly these actions if you run "terraform apply" now.
    

  10. Appliquez la configuration en exécutant terraform apply, qui déploie vos ressources sur Google Cloud. Lorsque vous y êtes invité, saisissez yes.

  11. Parcourez la console Google Cloud pour vérifier que vos ressources sont désormais déployées sur votre compte ou projet.

Redéployer Terraform avec Cloud Shell

Terraform stocke les informations sur les ressources déployées dans le fichier d'état Terraform. Si vous avez déjà suivi les étapes précédentes pour déployer votre configuration, nous vous recommandons vivement de réutiliser le même backend pour détecter, supprimer et mettre à jour automatiquement les ressources définies par la nouvelle configuration exportée.

  1. Dans le guide de configuration de la console, cliquez sur Télécharger en tant que Terraform, puis enregistrez la configuration.
  2. Ouvrez Cloud Shell.
  3. Dans Cloud Shell, créez un répertoire et accédez-y :
    mkdir cloud-foundation-example-redeploy && cd cloud-foundation-example-redeploy
    
  4. Importez la configuration Terraform que vous avez téléchargée à l'étape 1.

    Dans le menu à trois points Plus de Cloud Shell, sélectionnez Importer, puis cliquez sur Sélectionner des fichiers pour sélectionner la configuration Terraform. Définissez le répertoire de destination sur le dossier que vous avez créé à l'étape précédente, puis cliquez sur Importer.

  5. Vérifiez que vous êtes bien dans le répertoire cloud-foundation-example-redeploy.

  6. Assurez-vous que le bucket backend et le fichier d'état créés précédemment dans Cloud Storage existent bien.

    gcloud storage ls gs://tf-state-PROJECT_ID/terraform/state/
    
    Exemple de résultat :
    gs://tf-state-PROJECT_ID/terraform/state/default.tfstate
    

  7. Définissez une configuration de backend Terraform dans un fichier backend.tf en réutilisant le même bucket et le même préfixe.

    # backend.tf
    terraform {
          backend "gcs" {
            bucket  = "tf-state-PROJECT_ID"
            prefix  = "terraform/state"
          }
    }
    
  8. Exécutez terraform init. Ce processus initialise votre répertoire de travail, qui contient les fichiers de configuration Terraform et le backend.

  9. Exécutez la commande terraform plan pour afficher les ressources que Terraform crée, modifie ou détruit. Exemple de résultat :

    ...
    Plan: 2 to add, 3 to change, 4 to destroy.
    Note: You didn't use the -out option to save this plan, so Terraform can't
    guarantee to take exactly these actions if you run "terraform apply" now.
    

  10. Appliquez la configuration en exécutant terraform apply, qui déploie vos ressources sur Google Cloud. Lorsque vous y êtes invité, saisissez yes.

  11. Parcourez la console Google Cloud pour vérifier que vos ressources sont désormais déployées sur votre compte ou projet.

Déployer Terraform téléchargé après le déploiement à partir de la console

Si vous avez déjà déployé la configuration de base à l'aide du bouton "Déployer" de la console, un fichier d'état Terraform a été généré. Si vous souhaitez télécharger la configuration Terraform à déployer à l'aide de votre propre pipeline, vous devez inclure le fichier d'état Terraform généré lors du déploiement avec la console.

Pour télécharger et utiliser le fichier d'état, procédez comme suit:

  1. Pour télécharger le fichier d'état Terraform, procédez comme suit dans la section Gérer le fichier d'état Terraform :

    1. Verrouillez le déploiement.
    2. Téléchargez le fichier d'état.
    3. Déverrouillez le déploiement..
  2. Pour déplacer le fichier d'état que vous avez téléchargé vers un bucket Cloud Storage, consultez la section Stocker l'état Terraform dans un bucket Cloud Storage.

  3. Pour redéployer la configuration Terraform, consultez la page Redéployer Terraform avec Cloud Shell.

Résoudre des problèmes de déploiement Terraform

Déployer Terraform avec des ressources existantes

Si la configuration Terraform téléchargée tente de créer des ressources qui existent déjà, Terraform se ferme avec un code d'erreur 409. Pour résoudre ces erreurs, vous pouvez supprimer la ressource à l'aide de la console Google Cloud ou de gcloud CLI, puis appliquer de nouveau la configuration Terraform. Si ces ressources sont essentielles et ne peuvent pas être supprimées, vous pouvez également les importer dans votre état Terraform.

Gérer une Infrastructure as Code avec Terraform, Cloud Build et GitOps

Nous vous recommandons de suivre ce tutoriel pour obtenir des instructions complètes. Cette option est destinée aux administrateurs et aux opérateurs de plate-forme qui recherchent une stratégie permettant de modifier l'infrastructure de manière prévisible et répétée. Dans cet article, nous partons du principe que vous connaissez Google Cloud, Linux et GitHub. Les principales étapes de cette option sont les suivantes :

  1. Configurez votre dépôt GitHub.
  2. Configurez Terraform pour stocker l'état dans un bucket Cloud Storage.
  3. Accordez des autorisations à votre compte de service Cloud Build.
  4. Connectez Cloud Build à votre dépôt GitHub.
  5. Modifiez la configuration de votre environnement dans une branche de fonctionnalité.
  6. Faites la promotion des modifications dans l'environnement de développement.
  7. Faites la promotion des modifications dans l'environnement de production.