Académique Documents
Professionnel Documents
Culture Documents
1
Déroulement du cours
2
Déroulement du cours
3. Rétrospective
3
Best practices terraform
Best practice terraform ?
● Remote Backend
● Modules
● Wrapper Terragrunt
Loïc
Rappel : Création d’une infrastructure
Création des PROVIDER
ressources*
terraform apply
main.tf
Création du
fichier d’états
tfstate.json
* Terraform construit un graphe
pour ordonnancer lui-même les appels d’API
Loïc
Mise à jour de l’infrastructure avec backend local
Récupération
du tfstate
Récupération des
états réels
terraform apply PROVIDER
main.tf tfstate.json
Application des
différences
Locale
Mise à jour du tfstate
Loïc
Mise à jour de l’infrastructure avec remote backend
Récupération
du tfstate
Récupération des
états réels
terraform apply PROVIDER
main.tf tfstate.json
Application des
différences
Loïc
Local Backend vs Remote Backend avec s3
Pros :
Démo:
Loïc
Démo module lambda
● https://gitlab.com/lcaminale/infrastructure-modules/-/tree/demo-esme-modules/lambda
● Privilégier un repo avec tout vos modules terraform
Les bienfaits des modules Terraform
● Regrouper un ensemble de ressources sous un module
● Permet de faire des abstractions
● Évite le duplicata de code / réutilisation du code via module
○ DRY “Don’t Repeat Yourself “
● X-team, s’échanger les modules entre équipe
Best practice terraform ?
● Backend
● Modules
● Wrapper Terragrunt
Loïc
Un projet open source
https://www.gruntwork.io/how-it-works/
Terragrunt c’est quoi ?
● Un wrapper de terraform
● Garder ses configurations DRY
● Travaille avec modules terraform
● Permet l’encapsulation de module
● Pleins de fonctionnalités
Terragrunt exemple d’archi
Définition du backend
# terragrunt.hcl
Comment on définit un module dans terragrunt
# terragrunt.hcl
Démo Terragrunt
● https://gitlab.com/esme5/terraform-practice
Take away
● Dry modules
● Dry terraform code
● Dry remote states
● Dry cli flags
● Versioned infrastructure
Best practices ansible
Ansible Vault
● Garde les infos sensibles (mot de passes, keys..) chiffrés
● Compris dans ansible
● Facile d’utilisation et de prise en main
● Fichiers chiffrés versionnables sans crainte de diffusion de données sensibles
Inventaires dynamiques
● Automatisation terraform -> ansible
● Grand nombre de providers (https://github.com/ansible/ansible/tree/devel/contrib/inventory)
● Par scripts ou par plugins
● Pas de fichier host à remplir
Dynamic Inventories
YAML
ec2.py Playbook
Serveurs cibles
Julien
Mixed Inventories
Playbook
INI
Inventaire
Serveurs cibles
Julien
Mixed Inventories
INI ec2.py
YAML
Inventaire
Playbook
Molecule
$ molecule
● Création de l’infrastructure
create
● Application du/des rôle(s)
$ molecule
converge
● Connexion ssh à la vm / container $ molecule login
$ molecule
create
$ molecule
converge
$ molecule login $ molecule test
$ molecule verify
$ molecule
detroy
Ansible AWX
Démo Molecule
● https://gitlab.com/esme5/demo-ansible
En plus
Take away
Loïc 40
Certifications AWS
Loïc 41
Certifications AWS TIPS
Loïc 42
Use case fortnite
44
Rétrospective
Format rétro
● Mood meter : Le niveau de satisfaction de chacun (1à 10)