Aller au contenu principal

1.09 Les ressources au delà des fournisseurs de cloud: fichiers, modèles (templates) et null_resource

Objectifs

  • Utiliser Terraform avec des fournisseurs non API
  • Utiliser les fonctions null resource et template de Terraform

Utilisation du TP madlibs

Cet exemple utilise de nombreux aspects du langage pour produire des textes en local.

On va discuter de son fonctionnement en parcourant le code et en l'exécutant.

  • Comment fait le code pour lire les fichiers source et interpoler les variables ?
  • Comment fait le code pour boucler le nombre voulu de fois ?

Un autre cas intéressant : Null resource

Documentation:

Ce provider particulier permet d'exécuter des actions sans réellement faire appel à une API ou générer de contenu.

L'idée est de pouvoir déclencher des actions lorsqu'une partie de la recette change.

Dans l'exemple de la documentation, on détecte un changement d'adresses IP avec le trigger.

Quand le contenu de l'attribut évolue, le provisioner est exécuté. En l'occurence il s'agit d'un remote-exec

Les provisioners sont un moyen dans Terraform de lancer une action custom, cf. https://developer.hashicorp.com/terraform/language/resources/provisioners/syntax


resource "null_resource" "configmap" {

triggers = {
value = aws_instance.[*].private_ip # A list of strings
}

provisioner "local-exec" {
command = <<EOT
/opt/scripts/alert.sh "New servers ${aws_instance.[*].private_ip}"
EOT
}
}


Rappel des objectifs

  • Utiliser Terraform avec des fournisseurs non API