Description
Who should attend
- DevOps Engineers
- Software Developers
- Technical Managers and Leads
- System and Cloud Administrators
- Network Engineers and Developers
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.
Course Objectives
- Writing Terraform HCL code
- Deploying into common clouds such as AWS, Azure, Docker, Kubernetes, and VMWare
- Where Terraform fits in the Enterprise CI/CD model
- Differences between Terraform and Ansible
- Best practices
Follow On Courses
Ansible 101 – Essentials (A101E)
Jenkins Automation Server Essentials (JASE)
Outline: Terraform 101 – Infrastructure as Code (IaC) (TIAC)
Up and Running with Terraform
- Terraform Overview
- Defining “declarative”
- How to think about Terraform (versus Ansible)
- Reviewing the Terraform Configuration
- Running the Terraform Configuration
- Provisioners
Syntax
- “Low Level” HCL syntax
- Style Conventions
- Comments
- Blocks
- Arguments
- JSON Configuration Syntax
Resources
- Meta–Arguments
- depends_on
- count
- for_each
- provider
- lifecycle
- Data Sources
Variables and Output
- Input Variables
- Output Values
- Local Values
Modules
- Module Blocks
- Module Sources
- Meta Arguments
Terraform Templates
- templatefile Function
- Template Demonstration
- Introducing Data Sources
- Creating an External Data Source
- Building tftpl template files
Expressions
- Types and Values
- Strings and Templates
- Reference to Values
- Operators
- Function Calls
- Conditionals
- For Expressions
- Splat Expressions
- Dynamic Blocks
- Type Constraints
- Version Constraints
Functions
- String
- Collection
- Numeric
- Encoding
- Filesystem
- Date and Time
- Hash and Crypto
- IP Network
- Type Conversion
State
- Understanding the importants of state
- State storage and locking
- importing existing resources
- Remote State
- What to do when local state is lost
CICD Piplines with Terraform
- Terraform and GitLab pipelines
- Terraform and Jenkins pipelines
Enterprise Case Studies
- Terraform and Docker
- Terraform and Kubernetes
- Terraform and Amazon AWS
- Terraform and Azure
- Terraform and VMWare
- Understanding how to apply Terraform to your unique infrastructure
Beyond Basics
- Intro to Go Programming
- Terraform Cloud
- Additional HashiCorp Offerings
- Backends
- Secrets