Formation DevOps | Formation Terraform : 10- Premier pas avec Terraform:Variables et Local-Exec
This website is powered by ItGalaxy.io
Terraform : Variables :
Terraform : Provisioner:
Terraform : Variables et Local-Exec
- Utilisation de provisioner sur ces resources:
Provisioner remote-exec : exécution sur la machine distante.
Provisioner local-exec : exécution sur la machine terraform.
Type de variables:
String
list
map
Exemple variable en string :
variable “str” {type = string default = “127.0.0.1 gitlab.test “}resource “null_resource” “node1” {provisioner “local-exec” {command = “echo ‘${var.str}’ > hosts.txt”}} :Pas de ressource spécifique pour cette partie
Exemple variable en string :
Exemple variable en map :
variable “hosts” {default = {“127.0.0.1” = “localhost gitlab.local"“192.169.1.168” = “gitlab.test"“192.169.1.170” = “prometheus.test”}}
resource “null_resource” “hosts” {for_each = var.hostsprovisioner “local-exec” {command = “echo ‘${each.key} ${each.value}’ » hosts.txt”}}
Exemple variable en map :
3 elements
terraform apply -auto-approve: Pour éviter l’intéraction (forcer le yes).
Changer dans main.tf dans variable “127.0.0.1” = “localhost gitlab.local “ » en “127.0.0.7” = “localhost gitlab.local "
variable “hosts” {default = {“127.0.0.7” = “localhost gitlab.local"“192.169.1.168” = “gitlab.test"“192.169.1.170” = “prometheus.test”}}
resource “null_resource” “hosts” {for_each = var.hostsprovisioner “local-exec” {command = “echo ‘${each.key} ${each.value}’ » hosts.txt”}}
Détruire un élément et création d’un nouveau sans le supprimer du fichier.
Changer dans main.tf dans variable ” 127.0.0.7” = “localhost gitlab.local “ » en “127.0.0.7” =“localhost
gitlab.local.test "
variable “hosts” {default = {“127.0.0.7” = “localhost gitlab.local.test"“192.169.1.168” = “gitlab.test"“192.169.1.170” = “prometheus.test”}}
resource “null_resource” “hosts” {for_each = var.hostsprovisioner “local-exec” {command = “echo ‘${each.key} ${each.value}’ » hosts.txt”}}
/!\Rien n’a changé! Le probléme sur terraform qu’on change la valeur il le détecte pas
La solution est dans le trigger
Exemple trigger:
variable “hosts” {default = {“127.0.0.7” = “localhost gitlab.local.test"“192.169.1.168” = “gitlab.test"“192.169.1.170” = “prometheus.test”}}
resource “null_resource” “hosts” {for_each = var.hoststriggers = {foo = each.value}
provisioner “local-exec” {command = “echo ‘${each.key} ${each.value}’ » hosts.txt”}}
Permet de déclencher un echo si une value de la map a changé et ce fait grâce au .ftstate
Exemple variable en list:
variable “hosts” {default = [“127.0.0.1 localhost”,“192.168.1.133 gitlab.test”]}
resource “null_resource” “hosts” {count = “${length(var.hosts)}”: Count : pour l’itération
provisioner “local-exec”
{command = “echo ‘${element(var.hosts, count.index)}’ » hosts.txt”}}:Élément fct: pour afficher les elements de la list en parametre var.hosts , count.index
variable “hosts” {default = [“127.0.0.1 localhost”,“192.168.1.133 gitlab.test”]}
resource “null_resource” “hosts” {count = “${length(var.hosts)}”
triggers = {foo = element(var.hosts, count.index)}
provisioner “local-exec” {command = “echo ‘${element(var.hosts, count.index)}’ » hosts.txt”}}
1. Nous contactez
- Description: Besoin de Formation et des Solutions cloud complètes pour vos applications
- Links:
2. Infra as a Service
- Description: Infrastructure cloud évolutive et sécurisée
- Links:
3. Projets Développeurs
- Description: Découvrez des opportunités passionnantes pour les développeurs
- Links:
4. Développeurs
- Description: Rejoignez notre communauté de développeurs
- Links:
5. Formations Complètes
- Description: Accédez à des formations professionnelles de haute qualité
- Links:
6. Marketplace
- Description: Découvrez notre place de marché de services
- Links:
7. Blogs
- Description: Découvrez nos blogs
- Links:
- comment creer une application mobile ?
- Comment monitorer un site web ?
- Command Checkout in git ?
- Comment git checkout to commit ?
- supprimer une branche git
- dockercoin
- kubernetes c est quoi
- architecture kubernetes
- Installer Gitlab Runner ?
- .gitlab-ci.yml exemples
- CI/CD
- svelte 5 vs solid
- svelte vs lit
- solidjs vs qwik
- alpine vs vue
- Plateform Freelance 2025
- Creation d’un site Web gratuitement
This website is powered by ItGalaxy.io