1.8 KiB
1.8 KiB
%title: Terraform %author: Hubert
Terraform : Notions et Définitions
- terraform = GO https://www.terraform.io/docs/providers/index.html
- provider : fournisseur de ressources par API (principalement) Registry des providers : https://registry.terraform.io/ Certains intégrés dans le binaire GO
provider "kubernetes" {
version = "~> 1.10"
}
Terraform : Notions et Définitions
- resource : élément qui peut être CRUD via le provider * Create, Remove, Update, Delete * un objet d'une ressource est unique (1 nom) dans un même module
resource "ressource_type" "ressource_nom" {
arg = "valeur"
}
exemple :
resource "aws_instance" "web" {
ami = "some-ami-id"
instance_type = "t2.micro"
}
- data sources : ressource non modifiable
data "aws_ami" "ubuntu" {
most_recent = true
filter {
name = "name"
values = ["myami-*"]
}
}
Terraform : Notions et Définitions
- meta arguments
resource "ressource_type" "ressource_nom" {
count = nb
arg = "valeur"
}
Remarque : count = itération
- le For each
variable "instances" {
type = "map"
default = {
clef1 = "123"
clef2 = "456"
clef3 = "789"
}
}
resource "aws_instance" "server" {
for_each = var.instances
ami = each.value
instance_type = "t2.micro"
tags = {
Name = each.key
}
}
Terraform : Notions et Définitions
- State : stockage de l'état des ressources
- par défaut terraform.tfstate
- Remote state : * consul * s3 * postgres * ...
Attention aux données sensibles