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.
- Dans le guide de configuration de la console, cliquez sur Télécharger en tant que Terraform, puis enregistrez la configuration.
- Ouvrez Cloud Shell.
Dans Cloud Shell, créez un répertoire et accédez-y:
mkdir cloud-foundation-example && cd cloud-foundation-example
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.Vérifiez que vous êtes bien dans le répertoire
cloud-foundation-example
.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
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" } }
Exécutez
terraform init
. Ce processus initialise votre répertoire de travail, qui contient les fichiers de configuration Terraform et le backend.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.
Appliquez la configuration en exécutant
terraform apply
, qui déploie vos ressources sur Google Cloud. Lorsque vous y êtes invité, saisissezyes
.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.
- Dans le guide de configuration de la console, cliquez sur Télécharger en tant que Terraform, puis enregistrez la configuration.
- Ouvrez Cloud Shell.
- Dans Cloud Shell, créez un répertoire et accédez-y :
mkdir cloud-foundation-example-redeploy && cd cloud-foundation-example-redeploy
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.Vérifiez que vous êtes bien dans le répertoire
cloud-foundation-example-redeploy
.Assurez-vous que le bucket backend et le fichier d'état créés précédemment dans Cloud Storage existent bien.
Exemple de résultat :gcloud storage ls gs://tf-state-PROJECT_ID/terraform/state/
gs://tf-state-PROJECT_ID/terraform/state/default.tfstate
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" } }
Exécutez
terraform init
. Ce processus initialise votre répertoire de travail, qui contient les fichiers de configuration Terraform et le backend.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.
Appliquez la configuration en exécutant
terraform apply
, qui déploie vos ressources sur Google Cloud. Lorsque vous y êtes invité, saisissezyes
.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:
Pour télécharger le fichier d'état Terraform, procédez comme suit dans la section Gérer le fichier d'état Terraform :
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.
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 :
- Configurez votre dépôt GitHub.
- Configurez Terraform pour stocker l'état dans un bucket Cloud Storage.
- Accordez des autorisations à votre compte de service Cloud Build.
- Connectez Cloud Build à votre dépôt GitHub.
- Modifiez la configuration de votre environnement dans une branche de fonctionnalité.
- Faites la promotion des modifications dans l'environnement de développement.
- Faites la promotion des modifications dans l'environnement de production.