What you will learn
- Master Terraform basics, including configuration syntax and resource management.
- Utilize Terraform modules for efficient and reusable code organization.
- Manage Terraform state effectively, including remote state and locking.
- Implement advanced Terraform concepts for environment management.
- Automate infrastructure deployment using Terraform in CI/CD pipelines.
- Address security and compliance considerations in Terraform configurations.
Beneficial for
- DevOps Engineers
- System Administrators
- Infrastructure Engineers
- Cloud Architects
Course Pre-requisite
- Basic understanding of cloud computing concepts.
- Familiarity with infrastructure concepts and terminology.
- Enthusiasm for automating infrastructure using Terraform.
Course Outline
Overview of Terraform architecture
Obtaining and installing Terraform
Terraform CLI
Infrastructure lifecycle
Resources
Terraform Providers – AWS, Microsoft Azure, Google Cloud, On-premise
Modules
Data providers
Patterns for structuring projects
Abstracting services and resources
Planning your architecture
Creating Configuration Files
Setting up a simple two-tier AWS architecture
Using Packer to pre-configure Amazon Machine Images (AMIs)
Using Consul for Service DIscovery
Terminating infrastructure with Destroy
Mapping real world resources to configurations
Recording metadata
Creating infrastructure plans
Inspecting and modifying state
Dealing with Parameters
Key variables (TF_LOG, TF_VAR_name…)
Implicit and Explicit Dependencies
Non-dependant Resources
Iterating on Resources
Git as the source of truth
Using Terraform to describe deployment
Deploying environments with CI pipelines
Terratest
Unit Testing Terraform Modules
Securing your Terraform Pipeline
System Accounts & Permissions
Terraform Backend configuration
Handling Environments separately
Checking OCI service status
Verbose Logging
Error messages