Pre - requisite :
This course is intended for practicing Cloud Admins who have experience with a Cloud Service provider (CSP like AWS, Azure, GCP) in a production environment.
• Skills such as the ability to change directory, list and edit files via command terminal
• Working experience with a cloud provider (AWS, GCP, or Azure) on Compute, storage and network services
• Experience with cloud credentials for authentication
Course Content
Introduction to Infrastructure as Code (IaC) concepts
- What is IaC
- Advantages of IaC patterns
- Other IaC tools
- Infrastructure configuration vs provisioning tools
Introduction to Terraform (vs other IaC)
- Multi-cloud and provider-agnostic benefits
- State file and configuration files
Terraform basics
- Install Terraform providers
- Providers Versioning
- Write Terraform configuration using multiple providers
- How Terraform finds and fetches providers
- Authenticate provider with Terraform
Terraform workflow
- Terraform workflow ( Write -> Plan -> Create )
- Initialize a Terraform working directory (terraform init)
- Generate and review an execution plan for Terraform (terraform plan)
- Validate a Terraform configuration (terraform validate)
- Apply formatting and style adjustments to a configuration (terraform fmt)
- Order of execution
- Execute changes to infrastructure with Terraform (terraform apply)
- Destroy Terraform managed infrastructure (terraform destroy)
Read, generate, and modify Terraform configuration files
- Use of variables and outputs
- Use different variable and output arguments
- Data types in Terraform
- Meta-Arguments – (for_each & count)
- Conditional expression and locals
- Expressions – for & Splat expression
- Data blocks in Terraform
- Resource addressing and resource parameters to connect resources together
- Terraform functions
Use Terraform outside the core workflow
- When to use terraform import to import existing infrastructure into your Terraform state
- Terraform state command to view Terraform state
- Enable verbose logging and different verbosity levels
- Provisioners in Terraform
- Understanding Connection Block
- Types of provisioners
Terraform modules
- Introduction to Modules
- Different module source options
- Interact with module inputs and outputs
- Variable scope within modules/child modules
- Set module version
Terraform backend state
- Understanding and implementing Terraform workspaces
- Default local backend
- State locking feature
- Integrating Terraform with Git for team collaboration
- Understanding Basic Working of Git
- Challenges and security considerations in Terraform state
- Differentiate remote state backend options
- Backend block and cloud integration in configuration
- Terraform State Backend Configuration
- Understand secret management in state files
HCP Terraform capabilities
- Explain how HCP Terraform helps to manage infrastructure
- Introduction to Terraform Cloud and Terraform Enterprise
- Terraform offerings and features
- Terraform cloud vs Terraform Enterprise
- Set up Terraform Cloud account
- Set up pipeline between GitHub and Terraform cloud
- Push Local files to GitHub repository
- Connect GitHub repository to terraform cloud
- Authenticate terraform cloud with provider
- Creating infrastructure with Terraform Cloud
- Overview of Sentinel policies in Terraform
- Understanding Policy enforcement
- Cost estimation feature of Terraform Cloud
