Skip to content

LAB : Terraform avec Docker#

🕘 : 5 minutes

Présentation#

Objectifs#

  • Interprétation de code Terraform
  • Déploiement d'un conteneur Docker avec Terraform
  • Familiarisation avec quelques commandes de la CLI

Prerequis#

  • Instance Docker fonctionnel
  • Connaissance basique Terraform
  • Terraform CLI

Déroulement du Lab#

Etape 1: Récuperation des sources du Lab#

La commandes ci-dessous permet de récupérer les sources utiles pour ce lab.

$ git clone https://github.com/wingufactory/lecloudfacile-devops-labs.git

$ cd terraform/simple-container-on-docker

Etape 2: Analyse du fichier terraform#

Le fichier main.tf contient des instructions qui permettront de déployer un conteneur Docker.

Avant de procéder à l'execution des commandes nécessaires, nous allons décrire le contenu afin de savoir ce que chaque instruction permet.

terraform {

  # Déclaration des providers requis
  required_providers {

    # ici nous allons utiliser le provider docker
    docker = {

      #Indique la source de ce provider
      source = "kreuzwerker/docker"

      #indique la version du provider utilisée
      version = "~> 3.0.1"
    }
  }
}

#indique qu'on va utiliser le provider docker avec un configuration specifique.
#{} signifie que nous allons utiliser les configurations par defaut de ce provider provider "docker" {}

# Déclaration d'une ressource - image Docker
resource "docker_image" "nginx" {
  name         = "nginx:latest"
  keep_locally = false
}

# Déclaration d'une ressource - conteneur Docker
resource "docker_container" "nginx" {
  image = docker_image.nginx.image_id
  name  = "tutorial"

  # Exposition du port 80 du conteneur sur le port 8000 de a machine hôte
  ports {
    internal = 80
    external = 8090
  }
}

Etape 3: Initialisation du projet#

L'initialisation du répertoire terraform/simple-container-on-docker permettra de préparer votre répertoire de travail pour l'utilisation de Terraform en configurant les fichiers & répertoires nécessaires.

$ terraform init

Etape 4: Verification fichier main.tf (format & syntaxe)#

Il est conseillé de vérifier la syntaxe du code Terraform ainsi que son formatage. Pour ce faire, vous pouvez exécuter les commandes suivantes:

# Verifie le format du fichier
$ terraform fmt

# validez la configuration
$ terraform validate

Etape 5: Deploiement de l'infrastructure#

Les commandes suivantes permettent de déployer les ressources déclarées dans le main.tf,

# Voir le plan de déploiement
$ terraform plan

# Déploiement des ressources 
$ terraform apply --auto-approve

Etape 6: Verification du déploiement#

  • L'execution de la commande suivante permet de vérifier le bon déploiement du conteneur.
$ docker ps
  • L'accès à l'url http://localhost:8000 sur le navigateur Web est également un indicateur du déploiement de votre infrastructure.

Etape 7: Décommissionnement de l'infrastructure#

Détruisez l'infrastructure crée dans ce lab avec la commande suivante

$ terraform destroy --auto-approve

references#