HashiCorp Terraform est un outil IaC (Infrastructure as Code) qui vous permet de provisionner et de gérer une 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.
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 :
- 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.
- Exécutez la commande
terraform plan
, qui évalue votre configuration et génère un plan d'exécution. Vous pouvez consulter le plan et apporter des modifications si nécessaire. -
Vous exécutez la commande
terraform apply
, qui effectue les actions suivantes :- Elle provisionne votre infrastructure en fonction de votre plan d'exécution en appelant les API Compute Engine correspondantes en arrière-plan.
- Il crée un fichier d'état Terraform, qui est un fichier JSON mappant 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.
-
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.
Guides basés sur Terraform pour Compute Engine
Le tableau suivant recense tous 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 zonal d'un disque existant. |
Créer et gérer des disques répliqués de manière synchrone | Explique comment créer et gérer des disques répliqués. |
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 représentent la capacité excédentaire 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 | Cette page 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 des 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 | Cette page décrit comment créer et gérer des modèles d'instance. |
Scaling basé sur les planifications | Décrit comment créer des planifications de scaling pour un groupe d'instances géré 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 | Décrit 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 d'OS 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) | Cette page explique 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 | Cette page explique 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 réutilisable de fichiers de configuration Terraform qui crée une abstraction logique des ressources Terraform. Un plan est un ensemble de modules déployables et réutilisables, ainsi qu'une stratégie qui met en œuvre et documente une solution spécifique.
Le tableau suivant recense tous les modules et tous 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 |
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 :
Étape suivante
- Exemples de code Terraform pour Compute Engine
- Documentation Terraform sur Google Cloud
- Documentation du fournisseur Google Cloud dans HashiCorp
- Infrastructure as Code pour Google Cloud