Terraform

HashiCorp Terraform enables you to safely and predictably create, change, and improve infrastructure. It is an open source tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.

Define infrastructure as code to increase operator productivity and transparency.

Collaborate & share:
Terraform configuration can be stored in version control, shared, and collaborated on by teams of operators.

Evolve your infrastructure:
Track the complete history of infrastructure versions.

Automation friendly:
If it can be codified, it can be automated.

We’ve designed this course in such a way so you’ll get maximum hands-on knowledge. Below are the course details:

1. Introduction to terraform
    a. Introduction
    b. Infrastructure as Code
    c. Terraform installation

2. Terraform basics
    a. Variables
    b. Outputting attributes
    c. Remote state
    d. Data Sources
    e. Templates
    f. Modules
    g. Terraform Commands Overview

3. Terraform with AWS
    a. Introduction to VPCs
    b. Launching EC2 instances in the VPC
    c. EBS Volumes
    d. Userdata
    e. Elastic IPs
    f. RDS
    g. IAM
    h. IAM Roles
    i. Introduction to Elastic Load Balancers (ELB)
    j. ELBs in terraform

4. Advanced Terraform Usage
    a. Introduction to Interpolation
    b. Conditionals
    c. Built-in Functions
    d. Terraform Project Structure

5. Packer
    a. Packer introduction
    b. Packer Installation
    c. Packer with terraform
    d. Launching EC2 instances with custom AMI

6. Terraform Module
    a. Creating Modules
    b. An Example Module
    c. Inputs/Outputs
    d. Standard Module Structure
    e. Module Usage
    f. Module Sources
    g. Multiple Instances of a Module
    h. Tainting resources within a module

7. Terraform Graph
    a. Usage
    b. Installing graphviz
    c. Generating Images

8. Projrect Sample
    a. Overview
    b. Intoduction to AWS resources
    c. Writing & Executing
    d. Exporting Output
    e. Verifying deployed application