Vous intégrez une équipe DevOps.
Actuellement :
Problèmes :
Objectif :
Automatiser :
Vérifier :
Question :
Fichier : terminal
mkdir iac-demo cd iac-demo mkdir terraform ansible
Structure :
iac-demo/
├── terraform/
│ └── main.tf
└── ansible/
├── inventory.ini
└── playbook.yml
Créer un conteneur NGINX
Fichier : terraform/main.tf
terraform {
required_providers {
docker = {
source = "kreuzwerker/docker"
}
}
}
provider "docker" {}
resource "docker_container" "nginx" {
image = "nginx:latest"
name = "mon_nginx"
ports {
internal = 80
external = 8090
}
}
Fichier : terminal
cd terraform terraform init terraform apply
Validation :
Fichier : terminal
terraform state list
Questions :
Fichier : ansible/inventory.ini
localhost ansible_connection=local
Fichier : ansible/playbook.yml
- hosts: localhost
connection: local
tasks:
- name: créer une page web temporaire
copy:
dest: /tmp/index.html
content: |
<h1>IaC avec Ansible</h1>
- name: copier la page dans le conteneur nginx
command: docker cp /tmp/index.html mon_nginx:/usr/share/nginx/html/index.html
Fichier : terminal
cd ../ansible ansible-playbook -i inventory.ini playbook.yml
Validation :
Modifier le nom du conteneur dans Terraform :
Fichier : terraform/main.tf
name = "mon_nginx_v2"
Relancer :
terraform apply
Puis rejouer Ansible :
ansible-playbook -i inventory.ini playbook.yml
Questions :
Corriger le playbook pour utiliser le bon nom de conteneur.
Question :
Objectif :
Modifier votre configuration :
Appliquer les changements.
Questions :
Terraform recrée-t-il la ressource ou la modifie-t-il ? Pourquoi ?
Créer un second conteneur :
Questions :
Créer un troisième conteneur :
Observer votre code :
Questions :
Questions :
Question :
Existe-t-il un moyen en Terraform de réutiliser du code ?