As enterprises seek to deploy and maintain increasingly complex cloud infrastructure, there is a necessity to use “Infrastructure as Code” (IaC) tools, like Terraform. An open-source, state management tool developed by HashiCorp, Terraform allows developers to use a common coding interface to work through their various clouds safely and efficiently. Attendees will leave being able to write and understand Terraform code (HCL), have a clear understanding of Terraform’s various components and supporting tools, as well as when to reach for Terraform over another IaC tool, such as Ansible.
What You’ll Learn
Writing Terraform HCL code
Deploying into common clouds such as AWS, Azure, Google Cloud, Docker, Oracle, Kubernetes, and VMWare
Where Terraform fits in the Enterprise CI/CD model
Differences between Terraform and Ansible
Best practices
Prepare for HashiCorp’s Terraform Associate Certification
AI LLM prompt engineering for Terraform snippets and jumpstarting solutions
Outline
AI LLM Toolkit
💻 Lecture + Lab: Large Language Model toolkit for AI Solution Assistance
Introduction to Terraform
💬 Lecture: Terraform Course Map
💬 Lecture: Introduction to Terraform
Software Control Management
💻 Lecture + Lab: SCM Option #1 - GitHub
💻 Lecture + Lab: SCM Option #2 - GitLab
Overview of Terraform
💻 Lecture + Lab: Terraform Install
💻 Lecture + Lab: gitignore for Terraform
Terraform Modules
💬 Lecture: Terraform HCL Syntax
💻 Lecture + Lab: Up and Running with Terraform
💬 Lecture: Terraform Variables
💻 Lecture + Lab: Terraform Variables
💬 Lecture: Terraform Locals
💻 Lecture + Lab: Output Values
💬 Lecture: Avoid the :latest Tag
🏆 Challenge: Terraform and Docker
Beyond Basics
💻 Lecture + Lab: Terraform CLI Workspaces
💻 Lecture + Lab: Terraform Expressions and Errors
💻 Lecture + Lab: Resources - replace vs taint
💻 Lecture + Lab: Dynamic Operations with Functions
💻 Lecture + Lab: Creating a Terraform Module
💻 Lecture + Lab: Moving State - terraform state mv
💻 Lecture + Lab: Dynamic Provisioning with tfvars Files
💻 Lecture + Lab: Data Sources and HTTP Provider
💬 Lecture: Import pre-existing infrastructure
💻 Lecture + Lab: CHALLENGE - AWS import
Loops
💬 Lecture: for_each
💻 Lecture + Lab: Looping Constructs - for_each
Provisioning
💻 Lecture + Lab: local-exec Provisioner
💻 Lecture + Lab: Creating Delays
💻 Lecture + Lab: Terraform - templatefile Function
Terraform Cloud
💻 Lecture + Lab: Terraform Cloud and Terraform Enterprise
💻 Lecture + Lab: Triggering Cloud Builds via Git Commits
Dynamic Blocks
💻 Lecture + Lab: Dynamic Blocks
AWS
💻 Lecture + Lab: Terraform and AWS
💻 Lecture + Lab: Output Values and AWS
💻 Lecture + Lab: AWS and looping with count vs for_each
💻 Lecture + Lab: Correcting Resource Drift and AWS
🏆 Challenge: Terraform and AWS
Azure
💻 Lecture + Lab: Terraform and Azure
Google Cloud Platform
💻 Lecture + Lab: Terraform and Google Cloud Platform
Oracle
💻 Lecture + Lab: Terraform and Oracle Cloud Infrastructure
Terraform and Enterprise
💻 Lecture + Lab: Deploy a Go RESTful API microservice with Terraform
💬 Lecture: Terraform vs. Ansible
💻 Lecture + Lab: Terraform and Ansible
VMWare
💬 Lecture: Terraform and VMWare
💻 Lecture + Lab: Terraform and VMWare
Helpful DevOps Tools (OPTIONAL)
💻 Lecture + Lab: Open Policy Agents and Terraform
💻 Lecture + Lab: GitHub Actions - GitLeaks
💻 Lecture + Lab: GitHub Actions - Terraform
💬 Lecture: Terragrunt
Terraform Review
💬 Lecture: HashiCorp Terraform Study Guide
DevOps Engineers
Software Developers
Technical Managers and Leads
System and Cloud Administrators
Network Engineers and Developers