Guide de démarrage rapide: créer une instance de VM à l'aide de Terraform
Dans ce guide de démarrage rapide, vous allez apprendre à utiliser Terraform pour créer une instance de machine virtuelle (VM) Compute Engine et vous y connecter.
Hashicorp Terraform est un outil IaC (Infrastructure as Code) qui vous permet de provisionner et de gérer l'infrastructure cloud. Le fournisseur Terraform pour Google Cloud (fournisseur Google Cloud) vous permet de provisionner et de gérer l'infrastructure Google Cloud.
Avant de commencer
Pour utiliser un terminal en ligne avec la gcloud CLI et Terraform déjà configurés, activez Cloud Shell :
En bas de la page, une session Cloud Shell démarre et affiche une invite de ligne de commande. L'initialisation de la session peut prendre quelques secondes.
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API:
gcloud services enable compute.googleapis.com
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/compute.instanceAdmin.v1
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For examples, see Represent workforce pool users in IAM policies. - Replace
ROLE
with each individual role.
- Replace
Préparer l'environnement
Clonez le dépôt GitHub contenant des exemples Terraform:
git clone https://github.com/terraform-google-modules/terraform-docs-samples.git --single-branch
Accédez au répertoire contenant l'exemple de démarrage rapide:
cd terraform-docs-samples/compute/quickstart/create_vm
Examiner les fichiers Terraform
Examinez le fichier main.tf
. Ce fichier définit les ressources Google Cloud que vous souhaitez créer.
cat main.tf
Le résultat ressemble à ce qui suit :
Ce fichier décrit la ressource google_compute_instance
, qui est la ressource Terraform de l'instance de VM Compute Engine. google_compute_instance
est configuré avec les propriétés suivantes:
- La propriété
name
est définie surmy-vm
. - La propriété
machine_type
est définie surn1-standard-1
. - La propriété
zone
est définie surus-central1-a
. boot_disk
définit le disque de démarrage de l'instance.network_interface
est défini pour utiliser le réseau par défaut de votre projet Google Cloud.
Créer l'instance de VM Compute Engine
Dans Cloud Shell, exécutez la commande suivante pour vérifier que Terraform est disponible:
terraform
La sortie devrait ressembler à ce qui suit :
Usage: terraform [global options] <subcommand> [args] The available commands for execution are listed below. The primary workflow commands are given first, followed by less common or more advanced commands. Main commands: init Prepare your working directory for other commands validate Check whether the configuration is valid plan Show changes required by the current configuration apply Create or update infrastructure destroy Destroy previously-created infrastructure
Initialisez Terraform à l'aide de la commande suivante. Cette commande prépare votre espace de travail afin que Terraform puisse appliquer votre configuration.
terraform init
La sortie devrait ressembler à ce qui suit :
Initializing the backend... Initializing provider plugins... - Finding latest version of hashicorp/google... - Installing hashicorp/google v5.35.0... - Installed hashicorp/google v5.35.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!
Validez la configuration Terraform en exécutant la commande suivante. Cette commande effectue les actions suivantes:
- Vérifie que la syntaxe de
main.tf
est correcte - Affiche un aperçu des ressources qui seront créées
terraform plan
La sortie devrait ressembler à ce qui suit :
Plan: 1 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.
- Vérifie que la syntaxe de
Appliquez la configuration pour provisionner les ressources décrites dans le fichier
main.tf
:terraform apply
Lorsque vous y êtes invité, saisissez
yes
.Terraform appelle les API Google Cloud pour créer l'instance de VM définie dans le fichier
main.tf
.La sortie devrait ressembler à ce qui suit :
Apply complete! Resources: 1 added, 0 changed, 0 destroyed
Se connecter à l'instance de VM
Connectez-vous à l'instance de VM que vous venez de créer en exécutant la commande suivante:
gcloud compute ssh --zone=us-central1-a my-vm
Effectuer un nettoyage
Pour éviter que les ressources utilisées sur cette page ne soient facturées sur votre compte Google Cloud, supprimez le projet Google Cloud contenant les ressources.
Dans Cloud Shell, exécutez la commande suivante pour supprimer les ressources Terraform :
terraform destroy
Lorsque vous y êtes invité, saisissez yes
.
La sortie devrait ressembler à ce qui suit :
Destroy complete! Resources: 1 destroyed.
Étape suivante
- Découvrez comment déployer un serveur Web Flask de base à l'aide de Terraform.
- Découvrez comment stocker l'état Terraform dans un bucket Cloud Storage.