Lab 06 : Utilisation des Workspaces
Objectifs
Section intitulée « Objectifs »Les workspaces Terraform vous permettent de stocker votre état Terraform
(terraform.tfstate) dans plusieurs espaces de travail distincts et nommés.
Terraform commence avec un seul workspace appelé default et si vous ne
spécifiez jamais explicitement un espace de travail, l’espace de travail par
défaut est celui que vous utiliserez tout le temps.
Dans cet atelier vous allez apprendre à créer et utiliser des Workspaces pour la création de ressources dans le Cloud Outscale.
Pré-requis
Section intitulée « Pré-requis »- Terraform doit être installé et fonctionnel
- Vous devez disposez 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 »Vous allez procéder comme suit:
L’étape 1 consiste à:
- Initier un projet Terraform et le configurer pour utiliser votre compte Outscale
- Créer une paire de clef SSH
- Configurer un backend S3 pour stocker le fichier state de manière sécurisée dans le stockage objet Outscale (OOS)
- Créer une machine virtuelle
- Vérifier que le fichier Terraform state du workspace default est stocké à
l’endroit spécifié dans le paramètre
Keydu backend S3.
L’étape 2 consiste à créer de nouveaux workspaces et créer des ressources dedans
L’étape 3 consiste à vérifier comment les fichiers Terraform state de nouveaux workspaces sont stockés et gérés dans le backend S3 spécifié.
Etape 1: Usage du workspace default
Section intitulée « Etape 1: Usage du workspace default »Connexion de Terraform avec le cloud provider Outscale
Section intitulée « Connexion de Terraform avec le cloud provider Outscale »Commencez par créer le fichier de configuration du provider, config.tf
terraform { required_providers { outscale = { source = "outscale/outscale" version = "0.10.0" } }}provider "outscale" { access_key_id = var.access_key_id secret_key_id = var.secret_key_id region = var.region}Ensuite créez le fichier des variables variables.tf nécessaires pour la
connexion avec le provider Outscale et qui vont contenir :
- L’ID de la clef d’accès au compte Outscale
- L’ID de la clef secrète du compte Outscale
- La région du compte Outscale
- L’ID de l’image (OMI)
- Le type de la VM
Puis, dans le fichier terraform.tfvars donnez des valeurs aux variables.
Création de la paire de clef SSH
Section intitulée « Création de la paire de clef SSH »Faire de façon identique aux labs précédents
Configuration du backend S3
Section intitulée « Configuration du backend S3 »Dans le fichier vm.tf vous allez configurer le backend S3
qui servira pour stocker le fichier state de manière sécurisée dans le stockage objet Outscale (OOS)
terraform { backend "s3" { profile = "demo" bucket = "lab05-terraform-state" key = "exemple-workspaces/terraform.state" region = "eu-west-2" endpoints = { s3 = "https://oos.eu-west-2.outscale.com" iam = "https://eim.eu-west-2.outscale.com" } skip_region_validation = true skip_credentials_validation = true skip_metadata_api_check = true skip_s3_checksum = true }}Maintenant, vous allez pouvoir initier votre projet Terraform avec la commande suivante :
terraform initCréation de la machine virtuelle
Section intitulée « Création de la machine virtuelle »Dans le même fichier vm.tf vous allez:
- Créer une machine virtuelle
hors VPC, juste pour simplifier, avec uniquement un groupe de sécurité personnalisé.
Il doit contenir une seule règle de test pour autoriser une connexion SSH à partir de partout.
Vous pouvez ensuite exécuter la commande terraform plan
pour voir les modifications que Terraform effectuera et vérifier que vous n’avez
pas des erreurs.
terraform planSi tout est bon, vous pouvez lancer l’exécution avec la commande terraform apply.
L’état de ce déploiement est stocké dans le workspace par default.
Vous pouvez le confirmer en exécutant la commande terraform workspace show,
qui identifiera le workspace dans lequel vous vous trouvez actuellement :
terraform workspace showdefaultLe workspace par défaut stocke votre état à l’emplacement que vous spécifiez via
le paramètre key de la configuration du backend S3.
Etape 2: Création de nouveaux workspaces
Section intitulée « Etape 2: Création de nouveaux workspaces »Création d’un premier workspace
Section intitulée « Création d’un premier workspace »Créez un nouveau workspace nommé exemple-01 à l’aide de la commande suivante
terraform workspace new exemple-01Created and switched to workspace "exemple-01"!📌 NOTE
Vous serez directement basculé au nouveau workspace, pour le confirmer,
vous pouvez exécuter à nouveau la commande terraform workspace show
Exécutez la commande terraform plan
Vous allez remarquer que l’exécution finira par échouer avec des erreurs de conflit au niveau de noms de ressources. La solution la plus adéquate est
d’utiliser la variable terraform.workspace au niveau de noms des ressources.
Challenge
Section intitulée « Challenge »Corrigez les erreurs et créez un second workspace.