Automatiser l'infrastructure¶
Infrastructure as Code, Terraform, Ansible, configuration management et drift détection.
graph LR
A["Fondamentaux"] --> B["Provisioning"]
B --> C["Configuration"]
C --> D["Drift"]
D --> E["Testing"]
E --> F["Patterns"]
F --> G["Cas avances"] Ce que vous allez apprendre¶
À la fin de ce tutoriel, vous serez capable de :
- Comprendre les principes de l'Infrastructure as Code et ses avantages sur le ClickOps
- Provisionner des ressources avec Terraform/OpenTofu (state, modules, plan/apply)
- Gérer la configuration avec Ansible (inventaire, playbooks, rôles, vault)
- Détecter et corriger le drift entre état desire et état réel
- Tester l'infrastructure avec du linting, des tests unitaires et du policy as code
- Appliquer les patterns IaC (modules réutilisables, workspaces, monorepo vs multi-repo)
- Mettre en place du GitOps et des plateformes self-service
Prérequis¶
| Prérequis | Détail |
|---|---|
| Linux | Administration système de base (SSH, packages, fichiers de configuration) |
| Git | Branches, merge requests (voir dev/méthode Versionner) |
| Cloud ou VM | Accès a un environnement cloud ou de virtualisation pour experimenter |
Parcours¶
| Section | Contenu |
|---|---|
| Fondamentaux | IaC vs ClickOps, immutable vs mutable, idempotence, declaratif vs imperatif |
| Provisioning | Terraform/OpenTofu : state, modules, plan/apply, backends. Pulumi, CloudFormation |
| Configuration management | Ansible : inventaire, playbooks, rôles, vault. Salt, Puppet, Chef. Push vs pull |
| Drift detection | Ecarts état desire/réel, terraform plan en CI, reconciliation, alerting |
| Testing d'infrastructure | tflint, ansible-lint, Terratest, Molecule, OPA, Sentinel, Checkov |
| Patterns et modules | DRY vs WET, modules réutilisables, workspaces, monorepo vs multi-repo |
| Cas avances | GitOps (ArgoCD, Flux), self-service, ephemeral environments, migration vers IaC |