TP - Génération aléatoire de fichiers
Cloner le projet unifié avec tous les TP :
git clone https://github.com/e-lie/formation-terraform-unifiedOuvrez le dossier : 136_random_and_local avec VSCode
1. Lire la recette et chercher à comprendre son fonctionnement.
Section titled “1. Lire la recette et chercher à comprendre son fonctionnement.”- où est déclarée la variable
words? et où est déclaré son contenu ?
La variable est déclarée dans le fichier
main.tfSon contenu est défini dans le fichierterraform.tfvars
- explorer les variables avec
terraform console:
cd 136_random_and_localterraform initterraform console> var.words...> var.num_files...> local.uppercase_words...CTRL+D
terraform planterraform applyterraform console
> random_shuffle.random_adjectives[3]...> local_file.mad_libs[35]...- à quoi sert
num_filesetcount?
num_filesest une variable qui est utilisée pour définir le nombre de boucles à effectuer dans les ressources via le meta-argumentcount
2. Lancer la recette
Section titled “2. Lancer la recette”- Que se passe-t-il ?
Des fichiers textes sont créés dans un dossier
madlibs
- Combien de ressources sont générées ? Pourquoi ?
Il y a autant de fichiers que défini par la variables
num_files
- Quelles propriété du provider
randomest évidente quand on demande un nouveauplan?
3. Modifier et relancer la recette
Section titled “3. Modifier et relancer la recette”- Modifier la variable
num_files
Change le nombre de fichiers produits
- Modifier la variable
words
Change le plan de la recette. Toutes les resources (fichiers) dont le contenu est impacté sont remplacés c’est a dire supprimées et recrées.
- Modifier la fonction de transformation de
words
Change le plan de la recette. Toutes les resources (fichiers) dont le contenu est impacté sont remplacés c’est a dire supprimées et recrées.
- Ajouter le provider
hashicord_archiveet une ressource pour faire un fichier zip avec le dossier généré par la recette
... archive = { source = "hashicorp/archive" version = "2.7.1" }...
data "archive_file" "mad_libs" { depends_on = [local_file.mad_libs] #A type = "zip" source_dir = "${path.module}/madlibs" #C output_path = "${path.cwd}/madlibs.zip" #B}