Provisionner des ressources Compute Engine avec Terraform

HashiCorp Terraform est un outil IaC (Infrastructure as Code) qui vous permet de provisionner et de gérer l'infrastructure cloud. Terraform fournit des plug-ins appelés fournisseurs qui vous permettent d'interagir avec des fournisseurs cloud et d'autres API. Vous pouvez utiliser le fournisseur Terraform pour Google Cloud pour provisionner et gérer les ressources Google Cloud, y compris Compute Engine.

Cette page vous présente l'utilisation de Terraform avec Compute Engine, y compris une présentation du fonctionnement de Terraform et des ressources pour vous aider à commencer à utiliser Terraform avec Google Cloud. Vous trouverez également des liens vers la documentation de référence Terraform pour Compute Engine, des exemples de code et des guides sur l'utilisation de Terraform pour provisionner des ressources Compute Engine.

Pour savoir comment commencer à utiliser Terraform pour Google Cloud, consultez Installer et configurer Terraform ou le guide de démarrage rapide Terraform pour Google Cloud.

Fonctionnement de Terraform

Terraform possède une syntaxe déclarative et axée sur la configuration qui vous permet de décrire l'infrastructure que vous souhaitez provisionner dans votre projet Google Cloud. Après avoir créé cette configuration dans un ou plusieurs fichiers de configuration Terraform, vous pouvez utiliser la CLI Terraform pour appliquer cette configuration à vos ressources Compute Engine.

Les étapes suivantes expliquent le fonctionnement de Terraform :

  1. Vous devez décrire l'infrastructure que vous souhaitez provisionner dans un fichier de configuration Terraform. Vous n'avez pas besoin d'écrire de code décrivant comment provisionner l'infrastructure. Terraform provisionne l'infrastructure pour vous.
  2. Vous exécutez la commande terraform plan, qui évalue votre configuration et génère un plan d'exécution. Vous pouvez examiner le plan et apporter les modifications nécessaires.
  3. Vous exécutez la commande terraform apply, qui effectue les actions suivantes :

    1. Il provisionne votre infrastructure en fonction de votre plan d'exécution en appelant les API Compute Engine correspondantes en arrière-plan.
    2. Il crée un fichier d'état Terraform, qui est un fichier JSON qui mappe les ressources de votre fichier de configuration avec les ressources de l'infrastructure réelle. Terraform utilise ce fichier pour conserver un enregistrement de l'état le plus récent de votre infrastructure et pour déterminer quand créer, mettre à jour et détruire des ressources.
    3. Lorsque vous exécutez terraform apply, Terraform utilise le mappage dans le fichier d'état pour comparer l'infrastructure existante au code et effectuer les mises à jour si nécessaire :

      • Si un objet de ressource est défini dans le fichier de configuration, mais n'existe pas dans le fichier d'état, Terraform le crée.
      • Si un objet de ressource existe dans le fichier d'état, mais possède une configuration différente de celle contenue dans votre fichier de configuration, Terraform met à jour la ressource en fonction de votre fichier de configuration.
      • Si un objet de ressource dans le fichier d'état correspond à votre fichier de configuration, Terraform laisse la ressource telle quelle.

Ressources Terraform pour Compute Engine

Les ressources sont les éléments fondamentaux du langage Terraform. Chaque bloc de ressources décrit un ou plusieurs objets d'infrastructure, tels que des réseaux virtuels ou des instances de calcul.

Le tableau suivant recense les ressources Terraform disponibles pour Compute Engine :

Ressources Terraform Sources de données

Guides basés sur Terraform pour Compute Engine

Le tableau suivant recense les guides et tutoriels d'instructions basés sur Terraform pour Compute Engine:

Guide Détails
Créer et démarrer une instance Compute Engine Explique comment créer une instance de machine virtuelle (VM).
Créer une VM avec des disques SSD locaux Explique comment créer une VM avec un stockage sur disque SSD local.
Créer des instantanés de disque Explique comment créer des instantanés standards pour sauvegarder régulièrement les données des disques.
Dupliquer un disque avec des clones Explique comment créer des clones de disque zonaux à partir d'un disque existant.
Créer et gérer des disques régionaux Explique comment créer et gérer des disques régionaux.
Créer et utiliser des VM Spot Explique comment créer et gérer des VM Spot. Les VM spot sont des instances de VM qui dépassent la capacité de Compute Engine. Les VM Spot sont disponibles à des prix bien plus faibles que les VM standards à la demande.
Ajouter des clés SSH aux VM Explique comment ajouter des clés SSH aux instances de VM qui utilisent OS Login et aux VM qui utilisent des clés SSH basées sur les métadonnées.
Exécuter des scripts d'arrêt Explique comment créer et exécuter des scripts d'arrêt exécutant des commandes juste avant l'arrêt ou le redémarrage d'une instance de VM.
Créer une réservation pour un seul projet Explique comment créer une réservation à projet unique, qui ne peut être utilisée que par des instances de VM dans le même projet.
Créer des modèles d'instances Explique comment créer et gérer des modèles d'instances.
Scaling basé sur les planifications Explique comment créer des planifications de scaling pour un MIG existant. L'autoscaling basé sur les planifications vous permet d'améliorer la disponibilité de vos charges de travail en planifiant la capacité de manière à anticiper la charge attendue.
Ajouter un espace de stockage Persistent Disk à votre VM Explique comment créer un volume Persistent Disk zonal non amorçable vide et l'associer à votre VM.
Configurez OS Login. Décrit comment configurer OS Login.
Associer un disque non amorçable à une VM Explique comment associer un disque zonal non amorçable à votre VM.
Créer une VM qui utilise un compte de service géré par l'utilisateur Explique comment créer une instance de VM configurée pour utiliser un compte de service géré par l'utilisateur. Un compte de service est un type particulier de compte généralement utilisé par une application ou une charge de travail de calcul pour effectuer des appels d'API autorisés.
Augmenter la taille d'un disque persistant Explique comment augmenter la taille d'un disque persistant.
Activer les affichages virtuels sur une VM Explique comment activer les affichages virtuels sur une instance de VM.
Créer un MIG dans une seule zone Décrit comment créer un groupe d'instances géré (MIG) dans une seule zone. Placer toutes les VM de votre MIG dans une seule zone permet de minimiser la latence, ce qui est utile pour certaines charges de travail, par exemple les charges de travail par lot.
Créer une instance de VM avec un nom d'hôte personnalisé Explique comment créer une instance de VM avec un nom d'hôte personnalisé.
Configurer la vérification de l'état et l'autoréparation d'une application Explique comment configurer une vérification de l'état basée sur l'application pour autoréparer les VM dans un MIG.
Créer un MIG utilisant des VM préemptives Explique comment créer un MIG qui utilise des instances de VM préemptives. Les VM préemptives sont utiles si votre charge de travail peut tolérer des perturbations et que vous souhaitez bénéficier des économies associées aux VM préemptives.
Ajouter et supprimer des VM dans un MIG Décrit comment ajouter et supprimer des VM dans un MIG.
Créer un MIG avec l'autoscaling activé Décrit comment créer un MIG avec autoscaling qui ajoute et supprime automatiquement des VM en fonction de l'utilisation moyenne du processeur dans le groupe.
Créer un MIG avec des disques avec état Explique comment créer un MIG qui utilise des instances de VM préemptives. Les VM préemptives sont utiles si votre charge de travail peut tolérer des perturbations et que vous souhaitez bénéficier des économies associées aux VM préemptives.
Créer des instances de VM SQL Server Explique comment créer des instances de VM Microsoft SQL Server. Microsoft SQL Server est un système de base de données qui s'exécute sur Windows Server et certaines distributions Linux. Vous pouvez utiliser SQL Server sur Compute Engine dans le backend pour vos applications, en tant qu'environnement flexible de test et de développement, ou en plus de vos systèmes sur site pour la sauvegarde et la reprise après sinistre.
Créer une attribution de règles OS Explique comment créer une attribution de règles d'OS. Vous pouvez utiliser des règles de système d'exploitation pour conserver des configurations logicielles cohérentes sur les instances de VM Linux et Windows.
Configurer des métadonnées avec état dans des groupes d'instances gérés (MIG) Décrit comment configurer des métadonnées avec état dans des groupes d'instances gérés (MIG). L'intérêt des métadonnées d'instance est de définir des propriétés pour vos applications et de communiquer avec elles à travers le serveur de métadonnées.
Configurer des disques persistants avec état dans les groupes d'instances gérés Explique comment configurer des disques persistants avec état dans les MIG. La configuration des disques persistants avec état permet de bénéficier de l'autoréparation des instances de VM et de mises à jour automatisées tout en préservant l'état des disques.
Configurer des adresses IP avec état dans les groupes d'instances gérés Décrit comment configurer des adresses IP avec état dans les groupes d'instances gérés. En configurant des adresses IP avec état dans un MIG, vous vous assurez que les adresses IP sont conservées lorsque les instances de VM du groupe sont autoréparées, mises à jour et recréées.
Définir une forme de distribution cible pour les VM d'un MIG régional Explique comment définir une forme de distribution cible pour les VM.
Créer un MIG avec des VM dans plusieurs zones d'une région Explique comment créer un MIG dont les VM sont réparties dans plusieurs zones d'une région. En répartissant la charge de l'application sur plusieurs zones, vous protégez votre charge de travail contre les défaillances de zone.
Désactiver et réactiver la redistribution proactive des VM dans un MIG régional Déscrit comment désactiver et réactiver la redistribution proactive des VM dans un MIG régional. Dans un MIG régional, pour conserver un nombre équitable d'instances de VM dans les zones sélectionnées de la région, utilisez la redistribution proactive des instances. Cette option de configuration maximise la disponibilité de votre application en cas de défaillance de la zone.

Modules et plans Terraform pour Compute Engine

Les modules et les plans vous aident à automatiser le provisionnement et la gestion des ressources Google Cloud à grande échelle. Un module est un ensemble de fichiers de configuration Terraform réutilisables qui crée une abstraction logique des ressources Terraform. Un plan comprend un package de modules déployables et réutilisables ainsi qu'une règle qui implémente et documente une solution spécifique.

Le tableau suivant répertorie les modules et les modèles liés à Compute Engine:

Module ou plan Détails
terraform-google-vm Ensemble de sous-modules directifs que vous pouvez utiliser comme éléments de base pour provisionner des VM dans Google Cloud.
terraform-google-startup-scripts Fournit une bibliothèque de scripts de démarrage utiles à intégrer dans les VM.
terraform-google-container-vm Déploie des conteneurs sur des instances Compute Engine

Étape suivante