This repository help customers to use HashiCorp Terraform over multiple modules.
Each module can be run independently
- Module 1 : Introduction of Terraform (no lab)
- Module 2 : First step with Terraform
- (lab) Installation and Configuration
- Module 3 : Langages and Interpolations
- (lab) My First infrastructure deployment
- (lab) Advanced development and Interpolation
- Module 4 : Integrated Development Environment
- (lab) Improve productivity using IDE
- Module 5 : Testing strategies
- (lab) Continuous Integration with Terraform
- Module 6 : Team Working
- (lab) Create you own module registry using Gitlab
- Module 7 : Usage in production
- (lab) Continuous Deployment with Terraform
- Module 8 : Custom Providers
- (lab) : Create your own Terraform provider
- Module 9 : Terraform Cloud
- (lab) : Getting Started with Terraform Cloud
All code used are compatible with the 0.12 major version of Terraform.
The initial set of labs use Google Cloud Platform resources.
An active GCP project is required, and specifics roles like roles/compute.admin
, roles/container.admin
may be necessary regarding resources used.
Disclaimer : This institute will not cover GCP services usage. Please follow Google Cloud Platform Sfeir Institute if you want to learn more about GCP services
A set of labs have been developed in order to be deployed with an Amazon Web Services Free tier account. See the lab aws/02-installation to configure your environment.
Module 6 and 7 use Gitlab to manage CI and CD pipelines. An active account is required on Gitlab.
All other components will be part as Open-Source projects and will be deployed on Kubernetes using Google Kubernetes Engine
Slides are available here : https://sfeir-open-source.github.io/sfeir-school-terraform
Press 's' for shortcuts help Press 'c' and use the type "gcp prez" to see the GCP slides version or Press 'c' and use the type "aws" to see the AWS slides version
Source code and tutorials are saved in directory steps
, with one directory labs, and another one suffixed with -solution
with solutions...
Notes : if you made changes, don't forget to commit locally using git commit -m "<msg>"
Please report issues using Github issue. If you would like to contribute on this repository, please submit a pull request.