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 (Google Cloud fournisseur) vous permet de provisionner et de gérer Google Cloud l'infrastructure.

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. Créez ou sélectionnez un Google Cloud projet.

    Rôles requis pour sélectionner ou créer un projet

    • Sélectionner un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
    • Créer un projet : pour créer un projet, vous avez besoin du rôle Créateur de projet (roles/resourcemanager.projectCreator), qui contient l'autorisation resourcemanager.projects.create. Découvrez comment attribuer des rôles.
    • Créez un Google Cloud projet :

      gcloud projects create PROJECT_ID

      Remplacez PROJECT_ID par le nom du Google Cloud projet que vous créez.

    • Sélectionnez le Google Cloud projet que vous avez créé :

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre Google Cloud projet.

  3. Vérifiez que la facturation est activée pour votre Google Cloud projet.

  4. Activez l'API Compute Engine :

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin), qui contient l' serviceusage.services.enable autorisation. Découvrez comment attribuer des rôles.

    gcloud services enable compute.googleapis.com
  5. Attribuez des rôles à votre compte utilisateur. Exécutez la commande suivante une fois pour chacun des rôles IAM suivants : roles/compute.instanceAdmin.v1

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Remplacez les éléments suivants :

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 guide 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 Google Cloud ressources 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 google_compute_instance ressource, qui est la ressource Terraform pour la Compute Engine VM instance. google_compute_instance est configuré pour avoir 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.
  • La propriété boot_disk définit le disque de démarrage de l'instance.
  • network_interface est configuré pour utiliser le réseau par défaut de votre Google Cloud projet.

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 pour créer l'instance de VM définie dans le main.tf fichier. Google Cloud

    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 dans cette démonstration soient facturées sur votre Google Cloud compte pour les ressources utilisées sur cette page, supprimez le Google Cloud projet qui les contient.

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