User Tools

Site Tools


terraform

Terraform

Terraform est un environnement logiciel d'« infrastructure as code » publié par la société HashiCorp. Cet outil permet d'automatiser la construction des ressources d'une infrastructure de centre de données comme un réseau, des machines virtuelles, un groupe de sécurité ou une base de données. 1)
Grâce à cela, nous pouvons créer différentes ressources en partant uniquement de lignes de code.


Sommaire :

Comment utiliser Terraform ? (Cas d'une VM Debian via AWS)

Exemple d'un fichier .tf Une fois Terraform installé, il faut se munir soit d'un terminal soit d'un logiciel comme Visual Studio, VSCodium, etc. Il faut alors créer des fichiers .tf dans un dossier spécialement créer pour l'occasion. Ce dossier peut contenir un seul fichier .tf comme il peut en contenir plusieurs, en fonction de l'utilisation que va en faire l'utilisateur final.

Ces fichiers contiennent plusieurs données, comme un provider précis2), les clés d'accès et de sécurité du compte à utiliser, l'instance que l'on voudrait utiliser, quelle type de clé publique et privée veut on créer et/ou utiliser, etc.




terraform init Une fois tous les fichiers prêts, il faut alors initialiser Terraform avec le commande terraform init (en s'était placé au préalable dans le dossier contenant le projet).



terraform plan Après cela, la commande terraform plan permet de planifier la construction de l'objet demandé, le terminal montrera alors toutes les opérations qui vont être faites, et les éléments qui diffèrent des options par défaut.









terraform apply La dernière commande, terraform apply, permet de lancer le processus, avec un tout dernier rappel des éléments qui vont être modifiés. Il ne reste plus qu'une ultime validation à faire et l'opération se lance.











Processus réussi Une fois terminé, si l'opération s'est bien déroulé, le message en vert “Apply complete!” apparait alors, confirmant le succès du processus.

Instance disponible sur l'interface d'AWS Et finalement, pour vérifier une ultime fois si tout s'est bien passé, on peut, dans le cas d'une VM sur AWS, aller vérifier la présence de la VM sur l'interface d'AWS, ainsi que son statut.



Créer une VM avec Apache installé et s'y connecter via un navigateur

Nous allons créer une VM qui installera un serveur HTTP, ici Apache, lors du processus de création.

Un serveur HTTP permet à un navigateur de se connecter à un site via différentes manières comme en utilisant l'adresse IP publique ou un nom de domaine particulier.

Selon le site doc.ubuntu-fr.org, “Apache est probablement le serveur HTTP le plus populaire. C'est donc lui qui met à disposition la plupart des sites Web du WWW.”

Infos basiques Pour commencer à créer notre VM, il faut d'abord préciser quelques informations basiques, comme le provider, ici toujours AWS, ainsi que l'access et la secret key de l'utilisateur qui créera la VM.




Groupe de sécurité Sur cette image, nous voyons le code nécessaire pour créer un groupe de sécurité. Ce groupe-ci permettra aux utilisateurs de se connecter soit via SSH (avec le port 22), soit via un navigateur en HTTP (avec le port 80). 3)






Instance Ici, nous avons les informations basiques sur notre VM, comme l'AMI (l'OS de notre machine, ici Debian), le type d'instance, le groupe de sécurité lié à la machine, etc. Cependant, nous avons aussi rajouté une section user_data, et cette section permet d'exécuter une commande au lancement de l'instance. Ici, dans l'ordre :

  1. Le système se met à jour
  2. Le système installe apache24)
  3. Le système lance le proccessus apache2
  4. Le système écrit la phrase Félicitations ! dans le fichier index.html, fichier que l'on verra lorsque l'on tentera de se connecter

terraform apply fini Notre système a bien été finalisé.







Instance sur l'interface AWS Nous pouvons aller voir directement sur AWS pour constater que notre instance est bien présente et activée.

Connexion via navigateur PC Et lorsque nous tentons de nous connecter sur le site à l'adresse IP publique attribuée lors la fabrication de l'instance, nous voyons bien le message de félicitations d'Apache. Notre machine est donc prête.

2)
ici AWS mais Terraform est compatible avec un grand nombre de providers, comme Microsoft Azure, Alibaba Cloud ou encore Oracle Cloud Infrastructure
3)
Non présent sur cette image, mais pour rajouter la connexion via un navigateur en HTTPS, il faudra rajouter une nouvelle règle ingress avec le port 443, mais il faudra réaliser aussi d'autres étapes détaillés ici :
4)
le -y enlève la nécessité de valider l'installation car sinon on ne pourrait pas l'installer avant d'avoir accès à la CLI de la machine
terraform.txt · Last modified: 2024/02/06 22:11 by maxime