Terraform - Outer Heaven

Terraform est un outil de creation d’infrastructure par le code open source créé par HashiCorp. Il vous permet de créer, de changer et de manière prévisible des infrastructures de manière sûre et prévisible. Tout le code de votre infrastructure peut être sauvegardé dans un dépôt Git et versionné.

Il fonctionne avec un principe de list de provider Terraform qui est responsable du cycle de vie d’une ressource: créer, lire, mettre à jour, supprimer. Les providers sont des configurations permettant de simplifier la communication avec un outil, une solution, un fournisseur ou logiciel afin de facilité l’utilisation. Cela reprend le principe de l’API. Les providers sont disponibles sur le site officiels de Terraform.

Installer Terraform

Terraform peut s’installer sur les sites MacOs (Intel et Apple Silicon) avec la possibilité d’utiliser aussi homebrew, Windows (x86 seulement), FreeBSD (x86 et ARM), OpenBSD (x86 et ARM), Solaris ainsi que divers distribution linux. Comme Debian (ainsi qu’Ubuntu), les distribution basé sur Redhat et Amazon Linux sur les architecture x86 et ARM.

Dans notre cas, nous allons nous interesser seulement à la partie Debian (et par extension Ubuntu).

wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform

Ainsi, le depot terraform s’ajoute dans le sourcelist de Debian, ce qui facilite la maintenance et l’utilisation.

Il est fortement recommander de creer un dossier spécialement pour les projets Terraform et d’utiliser l’extension de fichier .tf.

les commandes de bases

     terraform init

La première commande à lancer pour une nouvelle configuration qui va initialiser la configuration locale (import de modules par exemple).

La commande terraform init va automatiquement télécharger et installer les binaires des providers nécessaires.

     terraform plan

La commande terraform plan permet d’afficher le plan d’exécution, qui décrit quelles actions Terraform va prendre pour effectuer les changements réels de l’infrastructure. Si une valeur est affichée comme <computed>, cela veut dire que cette valeur ne sera connue qu’au moment de l’exécution du plan.

     terraform apply

La commande terraform apply va réellement appliquer les changements tels qu’ils ont été décrits par la commande terraform plan.

     terraform show

La commande terraform show permet d’afficher l’état courant de l’infrastructure.

     terraform destroy

La commande terraform destroy permet la suppression des conteneurs et machines virtuelles référencer dans le fichiers de plan de déployement. La commande terraform destroy est l’opposé à la commande terraform apply.