Terraform/03-notions-definitions
2023-07-04 19:02:30 +02:00
..
2023-07-04 19:02:30 +02:00

%title: Terraform %author: Hubert

Terraform : Notions et Définitions



  • 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