Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. L’infrastructure as Code avec Terraform
  3. Architecture et CLI Terraform
Extrait - L’infrastructure as Code avec Terraform Déployez votre infrastructure sur le Cloud
Extraits du livre
L’infrastructure as Code avec Terraform Déployez votre infrastructure sur le Cloud Revenir à la page d'achat du livre

Architecture et CLI Terraform

L’architecture globale

L’architecture de Terraform repose sur quatre éléments : le CLI (pour Command Line Interface), le registry, les providers et le state.

images/02EI01.png

Le CLI permet d’exécuter le code. Le registry est la source des providers, qui permettent à Terraform d’interagir avec les API des services cloud. Le state sert de base de données de stockage des ressources créées.

1. Le CLI

Le composant principal de Terraform est un CLI (pour Command Line Interface ou interface en ligne de commandes). C’est avec ce composant que les utilisateurs interagissent directement, au travers de commandes exécutées dans un shell.

Le CLI Terraform permet d’exécuter différentes commandes pour manipuler le code source composé de fichiers dont l’extension est .tf.

$ terraform 
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 

Pour exécuter le code, le CLI Terraform va s’appuyer sur des providers, qui sont téléchargés depuis le registry.

2. Le registry Terraform

Le registry Terraform est disponible...

Le CLI, installation et utilisation

1. Installer le CLI

Le CLI de Terraform est composé d’un unique binaire compilé.

La procédure d’installation est simple, puisqu’il suffit de déposer le fichier binaire terraform ou terraform.exe dans un répertoire appartenant au $PATH de l’utilisateur.

Terraform est aussi mis à disposition sur les différents packages manager des distributions Linux : Ubuntu/Debian, CentOS/RHEL et Fedora, ainsi que via brew pour macOS ou chocolatey pour Windows.

L’installation via les package managers est intéressante, car elle s’occupe d’ajouter le binaire dans un répertoire appartenant au $PATH et permet une mise à jour facile.

Privilégiez cette méthode sur vos postes utilisateur si vous voulez faciliter la mise à jour de Terraform !

Toutes les procédures d’installation sont indiquées sur la documentation officielle de Terraform à l’adresse https://developer.hashicorp.com/terraform/install.

images/02EI06.png

Pour valider la bonne installation de Terraform, il suffit alors d’exécuter la commande terraform version dans un shell :

$ terraform version 
 
Terraform v1.8.3 
on linux_amd64 

Une méthode alternative populaire pour installer Terraform consiste à utiliser l’outil tfenv. Cet outil est présenté dans le chapitre Outils externes...

Le workflow et les commandes principales

Le workflow Terraform est la suite de commandes qu’un utilisateur exécute lorsqu’il développe ou modifie une infrastructure.

Ces commandes sont très souvent exécutées dans l’ordre init > validate > plan > apply et éventuellement destroy :

images/02EI07.png

La commande terraform init est la première commande du workflow. Cette commande doit être exécutée lorsque le code est récupéré la première fois sur le poste de l’utilisateur (souvent après un git clone), ou lors d’un changement de paramétrage de provider ou de backend. Elle est aussi la première commande qui est exécutée lorsque l’on démarre un nouveau projet.

La commande terraform validate permet de vérifier que le code que l’on a écrit ou récupéré est correct du point de vue de sa syntaxe et du bon usage des arguments, attributs, références entre les différentes ressources, appels de fonctions, etc.

Les plug-ins disponibles dans les différents IDE sont aussi capables de valider que le code est correct. Lorsque le code n’est pas correct, les éléments incorrects sont souvent soulignés en rouge et des suggestions de correction peuvent aussi être proposées. Ce sont des outils utiles, à ne pas laisser de côté !

La commande terraform plan a pour but de comparer le code au dernier état d’exécution connu (le state) et de calculer le plan d’exécution qui permet d’atteindre l’état déclaré par le code. Le plan d’exécution est alors affiché à l’utilisateur sous la forme d’opérations de création, modification ou suppression de ressources. Le plan d’exécution peut être exporté pour être passé en paramètre à la commande suivante dans le workflow : terraform apply.

La construction du plan d’exécution par terraform plan peut être comparée à la compilation dans d’autres langages. Les entrées sont le code et le state, la sortie est un plan binaire prêt à être exécuté par Terraform !...

Naviguer dans la documentation officielle

Savoir consulter et se repérer dans la documentation est un super pouvoir ! La documentation officielle sur Terraform est complète et très fournie. La plupart des providers sont également très bien documentés.

1. La documentation Terraform

La documentation de Terraform est disponible à l’adresse https://developer.hashicorp.com/terraform.

images/02EI11.png

Elle est organisée en sections, chacune portant sur un thème : le langage HCL, le CLI et ses commandes, HCP Terraform, etc.

La documentation du langage HCL (langage qui est le propos du chapitre Écrire du code Terraform) est disponible dans la section https://developer.hashicorp.com/terraform/language. Ces pages présentent la syntaxe du langage, les différents blocs disponibles, l’utilisation des expressions, des fonctions, etc.

images/02EI12.png

La section sur le CLI est disponible à l’adresse https://developer.hashicorp.com/terraform/cli. Cette section porte sur l’ensemble des commandes du CLI terraform, les options disponibles, etc.

images/02EI13.png

N’oubliez pas que le CLI contient également une aide embarquée avec l’option -help : terraform -help ou terraform apply -help. Cette option liste et documente brièvement l’utilisation du CLI.

2. La documentation du registry

Le registry, à l’adresse...

Conclusion

Ce chapitre a présenté l’architecture globale de Terraform, ses différents composants, le CLI, le registry, les providers, et le state. Vous avez maintenant une compréhension du fonctionnement de Terraform et de comment interagir avec le CLI.

Il est temps de comprendre comment le code Terraform est structuré. Comment écrire les blocs de code, quelles expressions il est possible d’utiliser, quelles fonctions sont disponibles. Le chapitre suivant présente la structure du langage support à Terraform : HCL (pour HashiCorp Configuration Language).

À l’issue de ce chapitre, vous serez en mesure d’écrire du code pour décrire n’importe quel type d’infrastructure !