Skill · Provisioning · Provision as code with Terraform
Declare Terraform resources and data sources with pinned providers
Declare resources that create and data sources that read, through providers whose version is pinned and locked.
Start lesson 1The Provisioning domain
- 6 lessons
- ~6 h 50 of reading
- 3 quizzes
- 0 proof lab
The path
Where it comes from, where it leads
What you need to know first, where you stand on this skill, and what it opens next. Your status is computed in your browser, from what you have read and passed.
Before · 1 prerequisite
This skill, for you
Declare Terraform resources and data sources with pinned providers
Computing
It unlocks · 7 skills
- Provision a cloud infrastructure in Terraform, with state on the provider's object storage
- Provision an AWS infrastructure with Terraform: EC2, networking, IAM, autoscaling
- Generate Terraform resources in a controlled way with expressions, functions, count and for_each
- Control the ordering, replacement and guardrails of Terraform resources
- Design, structure and test a reusable Terraform module
- Inspect and repair a Terraform state, move or remove resources without recreating them
- Describe and deploy instances in Terraform with the hypervisor's provider
The path through the foundations From the most upstream foundation to this skill: what is in place, what remains to read.
Lessons
How to learn it
6 lessons, about ~6 h 50, in program order. Each lesson ends with its quiz.
The program
6 lessons · ~6 h 50
Part 1 · Découvrir (in French) 1 lesson · ~1 h 05
Part 2 · Écrire du code : décrire l'infrastructure (in French) 3 lessons · ~3 h 25
Part 3 · Écrire du code : calculer (in French) 1 lesson · ~50 min
Part 4 · Écrire du code : répéter et contrôler (in French) 1 lesson · ~1 h 30
- 6Les data sources (in French)· 90 min
Beyond the lessons
Assess, practise, pass the proof
Reading a lesson confirms nothing. A skill is confirmed by a passed quiz, practised in a guided lab, and put to the test by a challenge or a mission; an imported lab result is not verified by the site.
Assess yourself
3 quizzes
At the end of the lessons: passed at 70%, they confirm the skill.
Practice
10 guided labs
- Produce an Ansible inventory from the state
- The dependency Terraform cannot guess
- Update in place or replacement: read it in the plan
- Pin the CLI version and lock the providers
- What Terraform manages, and what it merely reads
- When exactly does Terraform read a data source?
- Read a resource's lifecycle in the plan
- Provider-defined functions
- Explicit source and provider alias
- Version constraints and the lock file
Proof
No proof
Neither a challenge nor a mission with a proof yet.
Apply it on real infrastructure
- Créer une VM avec Terraform et libvirt (in French)
- Réseau virtuel avec Terraform et libvirt (in French)
- Provisionner avec Ansible depuis Terraform (in French)
- Quiz Premières infrastructures Terraform (in French)
Hands-on lessons: their labs count as practice and their quizzes assess you, without being required to acquire it.
Placement test
Preparing the questions…
Your answers in detail
For each question asked: your answer, the correct answer, its explanation and the page to reread.
Around it
Who requires it, who teaches it
Required by
No published job requires it yet.
Taught by
Same block · Provision as code with Terraform
- Initialise, run and troubleshoot a Terraform project, from init to destroy
- Parameterize a Terraform project and expose its results without duplicating values
- Generate Terraform resources in a controlled way with expressions, functions, count and for_each
- Control the ordering, replacement and guardrails of Terraform resources
- Handle sensitive data in Terraform without exposing it in outputs or state
- Share a remote, locked and recoverable Terraform state
- Inspect and repair a Terraform state, move or remove resources without recreating them
- Organize several environments and a Terraform repository without dangerous coupling
- Run Terraform non-interactively in a pipeline, with guardrails
- Design, structure and test a reusable Terraform module
- Consume and version Terraform modules reproducibly