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

  1. 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.

  2. 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.

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine API:

    gcloud services enable compute.googleapis.com
  5. 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

Préparer l'environnement

  1. Clonez le dépôt GitHub contenant des exemples Terraform:

    git clone https://github.com/terraform-google-modules/terraform-docs-samples.git --single-branch
    
  2. 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 :

resource "google_compute_instance" "default" {
  name         = "my-vm"
  machine_type = "n1-standard-1"
  zone         = "us-central1-a"

  boot_disk {
    initialize_params {
      image = "ubuntu-minimal-2210-kinetic-amd64-v20230126"
    }
  }

  network_interface {
    network = "default"
    access_config {}
  }
}

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 sur my-vm.
  • La propriété machine_type est définie sur n1-standard-1.
  • La propriété zone est définie sur us-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

  1. 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
    
    
  2. 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!
    
    
  3. 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.
    
  4. 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