Lab 04 : Utilisation des provisioners
Objectifs
Section intitulée « Objectifs »Dans cet atelier, vous allez installer un package nginx et copier un fichier sur
la machine créé avec les providers.
Pré-requis
Section intitulée « Pré-requis »- Terraform doit être installé et fonctionnel
- Vous devez disposer de vos identifiants API (Acces Key et Secret Access Key) pour authentifier les appels d’API effectués par Terraform.
Etapes à suivre
Section intitulée « Etapes à suivre »- Reprenez le lab 2.
- Remplacez tous les datasources par des imports
- Ajoutez des provisioners permettant :
- de mettre à jour les packages
- d’installer nginx
- de copier un fichier
index.htmlavec le contenu de votre choix sur la machine distante sur le dossier/var/www/html
Import des ressources existantes
Section intitulée « Import des ressources existantes »Dans le fichier main.tf remplacez les lignes suivantes :
data "outscale_subnet" "subnet-a" { filter { name = "tag_values" values = ["public_subnet-a"] }}
data "outscale_security_group" "security_group-a" { filter { name = "tag_values" values = ["seg-ssh-all-a"] }}Par :
resource "outscale_net" "net-a" {}
resource "outscale_subnet" "subnet-a" {}
resource "outscale_security_group" "security_group-a" {}Lancez les commandes d’importation suivante (en mettant les bons id) :
terraform import outscale_net.net-a vpc-xxxxxx...
terraform import outscale_subnet.subnet-a subnet-xxxxxx...
terraform import outscale_security_group.security_group-a sg-xxxxxxExemple de réponse :
terraform import outscale_security_group.security_group-a sg-1ef8da57
outscale_security_group.security_group-a: Importing from ID "sg-1ef8da57"...outscale_security_group.security_group-a: Import prepared! Prepared outscale_security_group for importoutscale_security_group.security_group-a: Refreshing state... [id=sg-1ef8da57]
Import successful!
The resources that were imported are shown above. These resources are now inyour Terraform state and will henceforth be managed by Terraform.Lancez la commande terraform plan et corrigez pour que cela fonctionne en
ajoutant les informations manquantes.
Utilisation des provisioners
Section intitulée « Utilisation des provisioners »- Ajoutez un provisioner
remote-execpour lancer les commandes suivantes :
sudo apt updatesudo apt install -y nginx- Ajoutez un provisioner
📌 NOTE
En cas de problème, vous pouvez ajouter une dépendence entre l’eip et la vm.
Challenge
Section intitulée « Challenge »Plutôt que d’utiliser les provisioners, utilisez le plugin Ansible.