arrow_back

Principes de base de Terraform

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Principes de base de Terraform

Lab 35 minutes universal_currency_alt 1 crédit show_chart Débutant
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP156

Google Cloud – Ateliers adaptés au rythme de chacun

Présentation

Terraform vous permet de créer, de modifier et d'améliorer votre infrastructure de manière sûre et prévisible. Il s'agit d'un outil Open Source qui codifie les API dans des fichiers de configuration déclaratifs pouvant être partagés par des collègues, traités comme du code, modifiés, révisés et gérés par version.

Objectifs

Dans cet atelier, vous apprendrez à effectuer les opérations suivantes :

  • Démarrer avec Terraform dans Google Cloud
  • Installer Terraform à partir de binaires d'installation
  • Créer une infrastructure d'instances de VM à l'aide de Terraform

Préparation

Avant de cliquer sur le bouton "Démarrer l'atelier"

Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.

Cet atelier pratique vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.

Pour réaliser cet atelier :

  • vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
Remarque : Ouvrez une fenêtre de navigateur en mode incognito/navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le temporaire étudiant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier afin d'éviter que des frais supplémentaires ne vous soient facturés.

Démarrer l'atelier et se connecter à la console Google Cloud

  1. 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
    • Le temps restant
    • Les identifiants temporaires que vous devez utiliser pour cet atelier
    • Des informations complémentaires vous permettant d'effectuer l'atelier
  2. Cliquez sur Ouvrir la console Google. 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.
  3. Si nécessaire, copiez le nom d'utilisateur inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue Se connecter. Cliquez sur Suivant.

  4. Copiez le mot de passe inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue de bienvenue. Cliquez sur Suivant.

    Important : Vous devez utiliser les identifiants fournis dans le panneau de gauche. Ne saisissez pas vos identifiants Google Cloud Skills Boost. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
  5. 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 aux essais offerts.

Après quelques instants, la console Cloud s'ouvre dans cet onglet.

Remarque : Vous pouvez afficher le menu qui contient la liste des produits et services Google Cloud en cliquant sur le menu de navigation en haut à gauche. Icône du menu de navigation

Activer Cloud Shell

Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.

  1. Cliquez sur Activer Cloud Shell Icône Activer Cloud Shell en haut de la console Google Cloud.

Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Le résultat contient une ligne qui déclare YOUR_PROJECT_ID (VOTRE_ID_PROJET) pour cette session :

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.

  1. (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
  1. Cliquez sur Autoriser.

  2. Vous devez à présent obtenir le résultat suivant :

Résultat :

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project = <ID_Projet>

Exemple de résultat :

[core] project = qwiklabs-gcp-44776a13dea667a6 Remarque : Pour consulter la documentation complète sur gcloud, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.

Qu'est-ce que Terraform ?

Terraform est un outil permettant de créer et de modifier des infrastructures, ainsi que d'en gérer les versions efficacement et en toute sécurité. Terraform gère aussi bien les fournisseurs de services existants les plus prisés que les solutions internes personnalisées.

Les fichiers de configuration décrivent à Terraform les composants requis pour l'exécution d'une application donnée ou de l'ensemble de votre centre de données. Terraform génère un plan d'exécution détaillant les opérations qu'il effectuera pour atteindre l'état souhaité, puis il exécute ce plan pour créer l'infrastructure décrite. Lorsque la configuration est modifiée, Terraform peut déterminer ce qui a changé et créer des plans d'exécution incrémentiels applicables.

Terraform gère des composants d'infrastructure de bas niveau, comme des instances de calcul et des ressources de stockage ou de mise en réseau, et des composants de haut niveau, tels que des entrées de système de noms de domaine (DNS, Domain Name System) et des fonctionnalités SaaS (Software as a Service).

Principales fonctionnalités

Infrastructure as Code

L'infrastructure est décrite à l'aide d'une syntaxe de configuration de haut niveau. Cela vous permet de gérer les versions d'un plan de votre centre de données et de traiter ce plan comme n'importe quel autre code. En outre, vous pouvez partager l'infrastructure et la réutiliser.

Plans d'exécution

Terraform propose une étape de planification lors de laquelle il génère un plan d'exécution. Ce plan décrit les opérations effectuées par Terraform lorsque vous exécutez la commande apply. Cela vous évite toute mauvaise surprise lorsque Terraform manipule l'infrastructure.

Graphique des ressources

Terraform crée un graphique de l'ensemble de vos ressources, puis traite en parallèle la création et la modification des ressources non dépendantes. Terraform est ainsi en mesure de créer l'infrastructure la plus efficace possible, et renseigne les opérateurs sur les dépendances qui existent dans leur infrastructure.

Automatisation des modifications

Terraform peut appliquer à votre infrastructure des ensembles de modifications complexes avec un minimum d'intervention de votre part. Grâce au plan d'exécution et au graphique des ressources susmentionnés, vous connaissez précisément la nature et l'ordre des modifications apportées par Terraform, ce qui vous permet d'éviter de nombreux risques d'erreurs humaines.

Tâche 1 : Vérifier l'installation Terraform

Terraform est préinstallé dans Cloud Shell.

  • Ouvrez un nouvel onglet Cloud Shell et vérifiez si Terraform est disponible :
terraform

Le résultat d'aide doit être semblable à ceci :

Usage: terraform [--version] [--help] [args] The available commands for execution are listed below. The most common, useful commands are shown first, followed by less common or more advanced commands. If you're just getting started with Terraform, stick with the common commands. For the other commands, please read the help and docs before usage. Common commands: apply Builds or changes infrastructure console Interactive console for Terraform interpolations destroy Destroy Terraform-managed infrastructure env Workspace management fmt Rewrites config files to canonical format get Download and install modules for the configuration graph Create a visual graph of Terraform resources import Import existing infrastructure into Terraform init Initialize a Terraform working directory output Read an output from a state file plan Generate and show an execution plan providers Prints a tree of the providers used in the configuration push Upload this Terraform module to Atlas to run refresh Update local state file against real resources show Inspect Terraform state or plan taint Manually mark a resource for recreation untaint Manually unmark a resource as tainted validate Validates the Terraform files version Prints the Terraform version workspace Workspace management All other commands: debug Debug output management (experimental) force-unlock Manually unlock the terraform state state Advanced state management

Tâche 2 : Créer l'infrastructure

Une fois Terraform installé, vous pouvez immédiatement commencer à créer une infrastructure.

Configuration

L'ensemble de fichiers décrivant l'infrastructure dans Terraform est simplement désigné sous le terme de configuration Terraform. Dans cette section, vous allez écrire votre première configuration pour lancer une instance de VM unique. Le format des fichiers de configuration est disponible dans la documentation sur le langage de Terraform. Nous vous recommandons de créer les fichiers de configuration au format JSON.

  1. Dans Cloud Shell, créez un fichier de configuration vide nommé instance.tf à l'aide de la commande suivante :
touch instance.tf
  1. Cliquez sur Ouvrir l'éditeur dans la barre d'outils Cloud Shell.
    Pour passer de Cloud Shell à l'éditeur de code et vice versa, cliquez sur Ouvrir l'éditeur ou Ouvrir le terminal selon les besoins, ou cliquez sur Ouvrir dans une nouvelle fenêtre pour laisser l'éditeur ouvert dans un autre onglet.

  2. Cliquez sur le fichier instance.tf et ajoutez-y le contenu suivant, en remplaçant <ID_DU_PROJET> par votre ID de projet Google Cloud :

resource "google_compute_instance" "terraform" { project = "{{{project_0.project_id}}}" name = "terraform" machine_type = "e2-medium" zone = "{{{project_0.default_zone}}}" boot_disk { initialize_params { image = "debian-cloud/debian-11" } } network_interface { network = "default" access_config { } } }

Ce fichier constitue une configuration complète immédiatement applicable par Terraform. Sa structure générale doit se révéler intuitive et simple.

Le bloc "resource" figurant dans le fichier instance.tf définit une ressource existante de l'infrastructure. Une ressource peut correspondre à un composant physique, tel qu'une instance de VM.

Le bloc "resource" est introduit par deux chaînes : le type de ressource et le nom de ressource. Pour cet atelier, la ressource présente le type google_compute_instance et le nom terraform. Le préfixe du type est mappé sur le fournisseur : ainsi, google_compute_instance indique automatiquement à Terraform que la ressource est gérée par le fournisseur Google.

Le bloc "resource" renferme la configuration requise pour la ressource.

  1. Dans Cloud Shell, vérifiez que le fichier que vous avez créé a bien été ajouté et que votre répertoire ne contient aucun autre fichier *.tf, puisque Terraform charge tous les fichiers stockés dans ce répertoire :
ls

Initialisation

La première commande à exécuter pour une nouvelle configuration, ou après la récupération d'une configuration existante à partir du contrôle des versions, est terraform init. Cette commande initialise différents paramètres et données locaux qui seront utilisés par les commandes ultérieures.

Terraform est doté d'une architecture basée sur des plug-ins compatible avec les nombreux fournisseurs de service et infrastructures disponibles. Chaque "fournisseur" est un binaire encapsulé qui est distribué séparément de Terraform. La commande terraform init télécharge et installe automatiquement le binaire des fournisseurs à utiliser dans la configuration, qui se limite ici à celui du fournisseur Google.

  1. Téléchargez et installez le binaire du fournisseur :
terraform init

Le plug-in fournisseur de Google est téléchargé et installé dans un sous-répertoire du répertoire de travail actuel, avec d'autres fichiers de tenue de registres. Vous obtenez alors le message "Initializing provider plugins". Terraform sait que vous exécutez un projet Google et obtient donc les ressources de ce fournisseur.

Installing hashicorp/google v4.77.0... Remarque : il se peut que votre numéro de version soit ultérieur.

Le résultat indique la version du plug-in en cours d'installation, et vous suggère de spécifier cette version dans les fichiers de configuration ultérieurs pour garantir le fait que la commande terraform init installera une version compatible.

  1. Créez un plan d'exécution :
terraform plan

Terraform procède à une actualisation (sauf si cette fonctionnalité a été explicitement désactivée), puis détermine les actions requises pour obtenir l'état spécifié dans les fichiers de configuration. Cette commande vous permet de vérifier facilement si le plan d'exécution d'un ensemble de modifications répond à vos attentes sans modifier les ressources réelles ni l'état. Par exemple, vous pouvez exécuter cette commande avant d'apporter une modification au contrôle des versions, afin de vous assurer qu'elle aura l'effet escompté.

Remarque : Vous pouvez utiliser l'argument -out facultatif pour enregistrer le plan généré dans un fichier en vue de l'exécuter ultérieurement à l'aide de la commande terraform apply.

Appliquer les modifications

  1. Dans le répertoire contenant le fichier instance.tf que vous avez créé, exécutez cette commande :
terraform apply

Le résultat ci-dessous présente le plan d'exécution, qui décrit les opérations que Terraform effectuera pour modifier l'infrastructure réelle en fonction de la configuration. Le format du résultat est semblable au format diff généré par des outils tels que Git.

Le signe + qui précède google_compute_instance.terraform signifie que Terraform va créer cette ressource. Cette chaîne est suivie des attributs qui seront définis. Lorsque la valeur affichée est <computed>, cela signifie qu'elle ne sera connue qu'une fois la ressource créée.

Exemple de résultat :

An execution plan has been generated and is shown below. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # google_compute_instance.default will be created + resource "google_compute_instance" "default" { + can_ip_forward = false + cpu_platform = (known after apply) + deletion_protection = false + guest_accelerator = (known after apply) + id = (known after apply) + instance_id = (known after apply) + label_fingerprint = (known after apply) + machine_type = "e2-medium" + metadata_fingerprint = (known after apply) + name = "terraform" + project = "qwiklabs-gcp-42390cc9da8a4c4b" + self_link = (known after apply) + tags_fingerprint = (known after apply) + zone = "us-west1-c" + boot_disk { + auto_delete = true + device_name = (known after apply) + disk_encryption_key_sha256 = (known after apply) + kms_key_self_link = (known after apply) + source = (known after apply) + initialize_params { + image = "debian-cloud/debian-11" + labels = (known after apply) + size = (known after apply) + type = (known after apply) } } + network_interface { + address = (known after apply) + name = (known after apply) + network = "default" + network_ip = (known after apply) + subnetwork = (known after apply) + subnetwork_project = (known after apply) + access_config { + assigned_nat_ip = (known after apply) + nat_ip = (known after apply) + network_tier = (known after apply) } } + scheduling { + automatic_restart = (known after apply) + on_host_maintenance = (known after apply) + preemptible = (known after apply) + node_affinities { + key = (known after apply) + operator = (known after apply) + values = (known after apply) } } } Plan: 1 to add, 0 to change, 0 to destroy. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value:

Si le plan a bien été créé, Terraform s'interrompt et attend votre approbation avant de poursuivre. Dans un environnement de production, si un aspect quelconque du plan d'exécution semble incorrect ou hasardeux, vous pouvez sans risque annuler la procédure à ce stade. En effet, aucune modification n'a été apportée à votre infrastructure.

  1. Si le plan vous semble acceptable, saisissez yes (oui) à l'invite de confirmation pour continuer.
    L'exécution du plan prend quelques minutes, car Terraform attend que l'instance de VM devienne disponible.

Terraform a maintenant terminé.

Tester la tâche terminée

Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si votre tâche a bien été exécutée, vous recevez une note d'évaluation.

Créer une instance de VM dans la zone avec Terraform
  1. Dans la console Google Cloud, accédez au Menu de navigation, puis cliquez sur Compute Engine > Instances de VM. La page Instances de VM s'ouvre. L'instance de VM que vous venez de créer apparaît dans la liste des instances de VM.

Terraform a écrit certaines données dans le fichier terraform.tfstate. Ce fichier d'état est extrêmement important, car il garde une trace de l'ID des ressources créées et permet ainsi à Terraform de savoir ce qu'il gère.

  1. Dans Cloud Shell, inspectez l'état actuel :
terraform show

Exemple de résultat :

# google_compute_instance.default: resource "google_compute_instance" "default" { can_ip_forward = false cpu_platform = "Intel Haswell" deletion_protection = false guest_accelerator = [] id = "terraform" instance_id = "3408292216444307052" label_fingerprint = "42WmSpB8rSM=" machine_type = "e2-medium" metadata_fingerprint = "s6I5s2tjfKw=" name = "terraform" project = "qwiklabs-gcp-42390cc9da8a4c4b" self_link = "https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-42390cc9da8a4c4b/zones/{{{project_0.default_zone}}}/instances/terraform" tags_fingerprint = "42WmSpB8rSM=" zone = "{{{project_0.default_zone}}}" boot_disk { auto_delete = true device_name = "persistent-disk-0" source = "https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-42390cc9da8a4c4b/zones/{{{project_0.default_zone}}}/disks/terraform" ....

Comme vous pouvez le voir, en créant cette ressource, vous avez aussi rassemblé de très nombreuses informations la concernant. Vous pouvez référencer ces valeurs pour configurer d'autres ressources ou résultats.

Félicitations ! Vous venez de créer votre première infrastructure avec Terraform. Vous avez découvert la syntaxe de configuration, un exemple de plan d'exécution de base et le fichier d'état.

Tâche 3 : Tester vos connaissances

Les questions à choix multiples suivantes vous permettront de mieux maîtriser les concepts abordés lors de cet atelier. Répondez-y du mieux que vous le pouvez.

Félicitations

Félicitations ! Vous avez terminé cet atelier. Vous savez désormais utiliser Terraform pour créer et gérer l'infrastructure sur Google Cloud.

Terminer votre quête

Cet atelier d'auto-formation fait partie des quêtes Managing Cloud Infrastructure with Terraform et Automating Infrastructure on Google Cloud with Terraform. Une quête est une série d'ateliers associés qui constituent un parcours de formation. Si vous terminez une quête, vous obtenez un badge attestant de votre réussite. Vous pouvez rendre publics les badges que vous recevez et ajouter leur lien dans votre CV en ligne ou sur vos comptes de réseaux sociaux. Inscrivez-vous à n'importe quelle quête contenant cet atelier pour obtenir immédiatement les crédits associés. Découvrez toutes les quêtes disponibles dans le catalogue Google Cloud Skills Boost.

Atelier suivant

Continuez sur votre lancée en suivant l'atelier Infrastructure as Code with Terraform. Vous pouvez également découvrir les ateliers Google Cloud Skills Boot suivants :

Étapes suivantes et informations supplémentaires

Formations et certifications Google Cloud

Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.

Dernière mise à jour du manuel : 26 janvier 2024

Dernier test de l'atelier : 10 août 2023

Copyright 2024 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.