Skip to content

Instantly share code, notes, and snippets.

@bench
Created May 4, 2018 13:56
Show Gist options
  • Save bench/2f5918d723ab44b27e240eb3d1e98b2d to your computer and use it in GitHub Desktop.
Save bench/2f5918d723ab44b27e240eb3d1e98b2d to your computer and use it in GitHub Desktop.
Terraform et AWS

Terraform sur AWS

un VPC permet de créer un réseau virtuel et de la configurer. C'est une isolation logique. On distingue subnet public avec IP accessible et subnet privée qui a besoin d'une NAT gateway. Terraform est un outil créé par Hashicorp qui fait de l'infra as code. On fait du déclaratif, et terraform se charge de monter/démonter les machines pour nous. Il est compatible multicloud et pas seulement AMAZON.

A l'initialisation, on commence par un

$ terraform init

Puis on va comparer nos fichiers de configurations .tf avec ce qui existe sur le cloud

$ terraform plan

Il existe une commande identique qui applique les modifications du plan. (graphe de dépendances + déploiement)

$ terraform apply

Et le destroy permet de démonter la pf

$ terraform destroy

HCL

Le langage est du HCL, et ressemble à du JSON

  • Le provider permet de définir le cloud cible

provider "aws" [ ... ]

  • Les ressources permettent de lancer des machines

  • Les variables permettent de mutualiser des infos

  • Les datasources permettent de récupérer des informations auprès du cloud (par exemple un ID de machine sur le cloud)

  • Les outputs permettent d'afficher des infos sur stdout à la fin

  • Les backends permet de sauvegarder l'état de l'infrastucture sur le cloud et évite de perdre le fichier TF local. C'est une ressource partagée par l'équipe.

Terraform est un concurrent de CloudFormation mais Terraform est plus complet

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment