Course Overview:
Terraform is a configuration orchestration tool for building and managing infrastructure on cloud & data centers. The course is instructor-led, live training (onsite or remote), and is designed for Engineers with little or no previous experience managing infrastructure. The course talks about in-depth Terraform syntax and techniques used to automate the setup and deployment of infrastructure.
Course Objectives:
- Install and configure Terraform
- Understand the principles of infrastructure as code
- Set up and automate infrastructure using Terraform
- Write and share configuration file with team members
Pre-requisites:
- To be able to do the demos, the delegate should have an AWS account, can open one for free, and will explain how to open one in the course.
Target Audience:
- DevOps Engineers
- System Administrators
- System Architects
Course Duration:
- 3 Days
Course Content:
DAY 1
Introduction
- Understanding Cloud Orchestration code and Terraform
- Why Terraform?
- Terraform Vs. Other Orchestration Tools – Why Terraform is the right choice
- Core Terraform Components
- Fundamental Concepts
Programming Structure
- Terraform Syntax: Providers
- Terraform Syntax: Resources
- Terraform Syntax: Variables
- Terraform Syntax: Data sources
- Terraform Syntax: Outputs
- Connecting to Cloud using Providers
- Terraform Coding Examples
- Resources
Provisioning resources with Terraform
- Types of Provisioners
- Implementing remote-exec provisioners
- Remote Exec Provisioners (Code)
- Implementing local-exec provisioners
- Integrating Ansible with Terraform
- Implementing File provisioners
- Creating and accessing compute instances
Script Executions
- Obtaining variables from Terraform into external scripts
- Using shell script remote executor from Terraform to configure platform on launched VMs
DAY 2
Deployment Automation using Terraform
- Deploying Java application on VMs launched through terraform
- Use of elastic IP in Terraform
- Automation through Hosts entry modification
- Using tomcat API to provision application
Managing RDS using Terraform
- Understanding RDS
- Launching RDS DB Instance using Terraform
- Launching Aurora DB Instance using Terraform
Terraform Modules
- Understanding the use case for modules
- Understanding the DRY principle
- Create and use a module
- Module Variables
- Remote State
Integrating with GIT for team management
- Security Challenges in Committing TFState to GIT
- Understanding the use case for Remote State
- Managing Remote State using S3
- Challenges with State File locking
DAY 3
Data Sources
- Understanding Data Sources
- Using Data Source
Templates
- Understanding Templates
- Using Templates
Integration with Configuration Management Tools
- Understanding configuration management
- Integration with puppet configuration management
Jenkins Integrations
- Understanding integration points between Jenkins and Terraform
Conclusions
- Understanding alternatives to Terraform
- Where terraform succeeds