A3TF101: Terraform 101 – IAC
About this Course
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.
Review outline here: https://alta3.com/courses/terraform
Audience Profile
• DevOps Engineers
• Software Developers
• Technical Managers and Leads
• System and Cloud Administrators
• Network Engineers and Developers
At Course Completion
• 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
Terraform Modules
• Lecture: Terraform HCL Syntax
• Lecture + Lab: Up and Running with Terraform
• Lecture + Lab: Terraform Variables
• 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
Prerequisites
Although not required, students with some experience programming, or pre-existing knowledge of cloud architecture, will most appreciate the technical nature of this hands-on course.