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