Présentation
Dans cet atelier, vous allez utiliser Terraform pour créer, mettre à jour et détruire des ressources Google Cloud. Vous commencerez par définir Google Cloud comme fournisseur.
Vous créerez une instance de VM sans mentionner le réseau pour voir comment Terraform analyse le code de configuration. Ensuite, vous modifierez le code pour ajouter un réseau et créer une instance de VM sur Google Cloud.
Vous apprendrez à mettre à jour l'instance de VM. Vous modifierez la configuration existante pour ajouter des tags, puis changerez le type de machine. Enfin, vous exécuterez des commandes Terraform pour détruire les ressources créées.
Objectifs
Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :
- Vérifier l'installation de Terraform
- Définir Google Cloud comme fournisseur
- Créer, modifier et détruire des ressources Google Cloud à l'aide de Terraform
Tâche 1 : Se connecter à la console Cloud
Pour chaque atelier, nous vous attribuons un nouveau projet Google Cloud et un nouvel ensemble de ressources pour une durée déterminée, sans frais.
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement.
Sur la gauche, vous trouverez le panneau Détails concernant l'atelier, qui contient les éléments suivants :
- Le bouton Ouvrir la console Google Cloud
- Le temps restant
- Les identifiants temporaires que vous devez utiliser pour cet atelier
- Des informations complémentaires vous permettant d'effectuer l'atelier
-
Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).
L'atelier lance les ressources, puis ouvre la page Se connecter dans un nouvel onglet.
Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.
Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
-
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
{{{user_0.username | "Username"}}}
Vous trouverez également le nom d'utilisateur dans le panneau Détails concernant l'atelier.
-
Cliquez sur Suivant.
-
Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.
{{{user_0.password | "Password"}}}
Vous trouverez également le mot de passe dans le panneau Détails concernant l'atelier.
-
Cliquez sur Suivant.
Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud.
Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
-
Accédez aux pages suivantes :
- Acceptez les conditions d'utilisation.
- N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
- Ne vous inscrivez pas à des essais sans frais.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Remarque : Pour afficher un menu contenant la liste des produits et services Google Cloud, cliquez sur le menu de navigation en haut à gauche, ou saisissez le nom du service ou du produit dans le champ Recherche.
Tâche 2 : Vérifier l'installation de Terraform
-
Dans le menu Google Cloud, cliquez sur Activer Cloud Shell (
). Si une boîte de dialogue s'affiche, cliquez sur Continuer.
-
Cliquez sur "Continuer" si vous y êtes invité.
-
Exécutez la commande suivante pour vérifier que Terraform est bien installé :
Remarque : Si vous recevez un avertissement signalant que la version de Terraform est obsolète, n'en tenez pas compte. Les instructions données dans cet atelier sont compatibles avec Terraform v1.0.5 et versions ultérieures.
terraform --version
Remarque : Pour télécharger la dernière version de Terraform, rendez-vous sur le site Web de Terraform. Terraform est distribué sous forme de package binaire pour toutes les plates-formes et architectures compatibles, tandis que Cloud Shell utilise la version 64 bits de Linux.
Le résultat devrait ressembler à l'exemple suivant (ne pas copier) :
Terraform v1.5.7
Terraform est préinstallé dans Cloud Shell. Vous pouvez donc créer directement une infrastructure.
Tâche 3 : Ajouter un fournisseur Google Cloud
- Créez le fichier
main.tf
:
touch main.tf
-
Cliquez sur Ouvrir l'éditeur dans la barre d'outils de Cloud Shell. Cliquez sur Ouvrir dans une nouvelle fenêtre pour laisser l'éditeur ouvert dans un onglet distinct.
-
Copiez le code ci-dessous dans le fichier main.tf
.
terraform {
required_providers {
google = {
source = "hashicorp/google"
}
}
}
provider "google" {
project = "{{{project_0.project_id | Project ID}}}"
region = "{{{project_0.default_region | Region}}}"
zone = "{{{project_0.default_zone | Zone}}}"
}
- Cliquez sur Fichier > Enregistrer.
- Accédez à la fenêtre Cloud Shell et exécutez la commande
terraform init
.
terraform init
Le résultat devrait ressembler à l'exemple suivant (ne pas copier) :
Initializing the backend...
Initializing provider plugins...
- Finding hashicorp/google versions matching "4.15.0"...
- Installing hashicorp/google v4.15.0...
- Installed hashicorp/google v4.15.0 (signed by HashiCorp)
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.
Terraform has been successfully initialized!
Tâche 4 : Créer l'infrastructure
Essayons de créer une instance de calcul sans spécifier le paramètre "network" et voyons comment Terraform traite cette configuration.
- Accédez à la fenêtre de l'éditeur. Dans le fichier
main.tf
, saisissez le bloc de code suivant :
resource "google_compute_instance" "terraform" {
name = "terraform"
machine_type = "e2-micro"
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
}
-
Enregistrez le fichier "main.tf" en cliquant sur Fichier > Enregistrer.
-
À présent, exécutez la commande suivante pour vérifier si l'instance Compute Engine va être créée :
terraform plan
- La configuration échoue avec l'erreur ci-dessous. En effet, vous ne pouvez pas configurer d'instance Compute Engine sans réseau.
│ Error: Insufficient network_interface blocks
│
│ on main.tf line 15, in resource "google_compute_instance" "terraform":
│ 15: resource "google_compute_instance" "terraform" {
│
│ At least 1 "network_interface" blocks are required.
- À présent, ajoutez le réseau en incluant le segment de code ci-dessous dans le bloc
google_compute_instance
.
network_interface {
network = "default"
access_config {
}
}
Le code final figurant dans le fichier main.tf doit se présenter comme suit :
terraform {
required_providers {
google = {
source = "hashicorp/google"
}
}
}
provider "google" {
project = "{{{project_0.project_id | Project ID}}}"
region = "{{{project_0.default_region | Region}}}"
zone = "{{{project_0.default_zone | Zone}}}"
}
resource "google_compute_instance" "terraform" {
name = "terraform"
machine_type = "e2-micro"
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = "default"
access_config {
}
}
}
- Enregistrez le fichier "main.tf" en cliquant sur Fichier > Enregistrer.
- À présent, exécutez la commande
terraform plan
pour vérifier si l'instance Compute Engine va être créée.
terraform plan
Cliquez sur Autoriser quand vous y êtes invité.
Vous devriez obtenir le résultat suivant (ne copiez pas cet exemple) :
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# google_compute_instance.terraform will be created
+ resource "google_compute_instance" "terraform" {
+ can_ip_forward = false
+ cpu_platform = (known after apply)
+ current_status = (known after apply)
+ deletion_protection = false
...
Plan: 1 to add, 0 to change, 0 to destroy.
- Pour appliquer les modifications souhaitées, exécutez la commande suivante :
terraform apply
- Pour confirmer les actions planifiées, saisissez
yes
.
Vous devriez obtenir le résultat suivant (ne copiez pas cet exemple) :
...
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Remarque : Si vous recevez un message d'erreur, revenez aux étapes précédentes pour vérifier que vous avez saisi le code approprié dans le fichier "main.tf".
Cliquez sur Vérifier ma progression pour confirmer que l'instance Compute Engine a bien été créée.
Créer l'infrastructure
Vérifier dans la console Cloud
Dans la console Google Cloud, vérifiez que les ressources ont bien été créées.
-
Dans la console Google Cloud, accédez au menu de navigation (
), puis cliquez sur Compute Engine > Instances de VM.
-
Affichez l'instance terraform que vous avez créée.

Tâche 5 : Modifier l'infrastructure
Dans cette tâche, vous allez apporter deux types de modifications à l'infrastructure :
- Ajouter des tags réseau
- Changer le type de machine
Ajouter des tags à la ressource de calcul
Terraform permet non seulement de créer des ressources, mais également de les modifier.
- Ajoutez un argument
tags
à l'instance que vous venez de créer de sorte que le code se présente comme suit :
resource "google_compute_instance" "terraform" {
name = "terraform"
machine_type = "e2-micro"
tags = ["web", "dev"]
# ...
}
- Exécutez
terraform plan
.
terraform plan
- Exécutez
terraform apply
pour mettre à jour l'instance.
terraform apply
Vous devriez obtenir le résultat suivant (ne copiez pas cet exemple) :
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
~ update in-place
Terraform will perform the following actions:
# google_compute_instance.terraform will be updated in-place
~ resource "google_compute_instance" "terraform" {
id = "projects/qwiklabs-gcp-00-da04aeabe9ab/zones/us-central1-c/instances/terraform"
name = "terraform"
~ tags = [
+ "dev",
+ "web",
]
# (17 unchanged attributes hidden)
# (4 unchanged blocks hidden)
}
Plan: 0 to add, 1 to change, 0 to destroy.
Le préfixe ~
signifie que Terraform va mettre à jour la ressource sur place.
- Répondez
yes
lorsque vous y êtes invité. Terraform ajoute alors les tags à votre instance.
Cliquez sur Vérifier ma progression pour confirmer que les tags ont bien été ajoutés.
Ajouter des tags à la ressource de calcul
Changer le type de machine sans arrêter la VM
Vous ne pouvez pas changer le type de machine d'une VM en cours d'exécution. Voyons comment Terraform traite cette opération.
- Accédez au fichier main.tf et remplacez la valeur
e2-micro
de l'argument "machine_type" de l'instance Terraform par e2-medium
de sorte que le code se présente comme suit :
resource "google_compute_instance" "terraform" {
name = "terraform"
machine_type = "e2-medium"
tags = ["web", "dev"]
# ...
}
- Exécutez
terraform plan
.
terraform plan
- Réexécutez
terraform apply
pour mettre à jour l'instance.
terraform apply
La commande "terraform apply" échoue et renvoie le message d'avertissement ci-dessous. (Ne copiez pas cet exemple.)
╷
│ Error: Changing the machine_type, min_cpu_platform, service_account, enable_display, shielded_instance_config, scheduling.node_affinities or network_interface.[#d].(network/subnetwork/subnetwork_project) or advanced_machine_features on a started instance requires stopping it. To acknowledge this, please set allow_stopping_for_update = true in your config. You can also stop it by setting desired_status = "TERMINATED", but the instance will not be restarted after the update.
│
│ with google_compute_instance.terraform,
│ on main.tf line 31, in resource "google_compute_instance" "terraform":
│ 31: resource "google_compute_instance" "terraform" {
- Il est impossible de changer le type de machine d'une VM en cours d'exécution. Pour que la VM s'arrête avant que vous mettiez à jour le paramètre
machine_type
, définissez l'argument allow_stopping_for_update
sur true
de sorte que le code se présente comme suit :
resource "google_compute_instance" "terraform" {
name = "terraform"
machine_type = "e2-medium"
tags = ["web", "dev"]
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = "default"
access_config {
}
}
allow_stopping_for_update = true
}
- Exécutez
terraform plan
.
terraform plan
- Réexécutez
terraform apply
pour mettre à jour l'instance.
terraform apply
-
Répondez yes
lorsque vous y êtes invité.
-
Pour vérifier que le type de machine a été modifié et que les tags ont été ajoutés, accédez à Instances de VM dans la console Cloud et cliquez sur l'instance terraform créée.

Cliquez sur Vérifier ma progression pour confirmer que le type de machine Compute Engine fourni par Terraform est bien "e2-medium".
Changer le type de machine de l'infrastructure
Tâche 6 : Détruire l'infrastructure
Vous savez maintenant comment créer et modifier une infrastructure. Avant de créer plusieurs ressources et d'afficher les dépendances associées, vous allez découvrir comment détruire complètement votre infrastructure gérée par Terraform.
- Exécutez la commande ci-dessous. Répondez
yes
pour exécuter ce plan et détruire l'infrastructure :
terraform destroy
Le préfixe -
indique que l'instance et le réseau vont être détruits.
- Vérifiez que l'instance Terraform n'existe plus en accédant à Instances de VM dans la console Cloud.
Cliquez sur Vérifier ma progression pour confirmer que l'infrastructure a bien été détruite.
Détruire l'infrastructure
Félicitations !
Dans cet atelier, vous avez appris à effectuer les tâches suivantes :
- Vérifier l'installation de Terraform
- Définir Google Cloud comme fournisseur
- Créer, modifier et détruire des ressources Google Cloud à l'aide de Terraform
Terminer l'atelier
Une fois l'atelier terminé, cliquez sur Terminer l'atelier. Google Cloud Skills Boost supprime les ressources que vous avez utilisées, puis efface le compte.
Si vous le souhaitez, vous pouvez noter l'atelier. Sélectionnez un nombre d'étoiles, saisissez un commentaire, puis cliquez sur Envoyer.
Le nombre d'étoiles correspond à votre degré de satisfaction :
- 1 étoile = très insatisfait(e)
- 2 étoiles = insatisfait(e)
- 3 étoiles = ni insatisfait(e), ni satisfait(e)
- 4 étoiles = satisfait(e)
- 5 étoiles = très satisfait(e)
Si vous ne souhaitez pas donner votre avis, vous pouvez fermer la boîte de dialogue.
Pour soumettre des commentaires, suggestions ou corrections, veuillez accéder à l'onglet Assistance.
Copyright 2020 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.