Aller au contenu

Lab 04 : Utilisation des provisioners

Dans cet atelier, vous allez installer un package nginx et copier un fichier sur la machine créé avec les providers.

  • 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.
  • 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.html avec le contenu de votre choix sur la machine distante sur le dossier /var/www/html

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) :

Terminal window
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-xxxxxx

Exemple de réponse :

Terminal window
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 import
outscale_security_group.security_group-a: Refreshing state... [id=sg-1ef8da57]
Import successful!
The resources that were imported are shown above. These resources are now in
your 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.

  • Ajoutez un provisioner remote-exec pour lancer les commandes suivantes :
Terminal window
sudo apt update
sudo 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.

Plutôt que d’utiliser les provisioners, utilisez le plugin Ansible.