DEVOPS-207

Infrastructure as Code: Provisioning & Change Control with Terraform and GitOps

Download as PDF
Enquire Now

Course Overview

This course starts with the basics by providing an overview of Infrastructure-as-Code
(IaC), which is the basic concept for Terraform. We will explore how Terraform can be
used as an IaC tool on Amazon Web Services (AWS) and also cover its features and
benefits. We’ll then look at how Terraform transforms lines of code into real
infrastructure on AWS.


Terraform allows infrastructure to be expressed as code. The desired state is expressed
in a simple human-readable language. Terraform uses this language to provide an
execution plan of changes, which can be reviewed for safety and then applied to make
changes. Extensible providers allow Terraform to manage a broad range of resources,
including hardware, IaaS, PaaS, and SaaS services.


By expressing all infrastructure as code, source code version control techniques (with
Git) become available as a superior change control process, wherein all changes to
systems are tracked, with a full audit history of who made changes, and when the
changes were made.

Learning Outcomes

  • Understanding of Infrastructure as code
  • Understanding of Terraform basics and its execution flow
  • Understanding HCL (HashiCorp Configuration Language) syntax
  • Creating infrastructure on AWS using Terraform
  • Defining variables in Terraform
  • Best practices for Change Control using Git

Course Outline

Introduction to Infrastructure as Code (Iac) & Terraform

  • Introduction to Infrastructure as code
    and Terraform
  • Hashicorp Configuration Language
    (HCL) syntax
  • Create your first infrastructure using
    Terraform execution flow
  • Updating a resource in Terraform
    configuration file
  • State file and other files created by
    Terraform
  • Defining Variables in Terraform
  • Passing variables via terraform.tfvars
    file
  • Writing configuration files to create a
    resource in AWS
  • Creating a resource in AWS via
    Terraform

Provisioning AWS Infrastructure with Terraform

  • Terraform Code Structure
  • Terraform Providers
  • Terraform Configuration Syntax
  • Initializing Working Directories
  • Authenticating to AWS
  • Creating Resources
  • Terraform Plan & Apply
  • Formatting & Validating Configuration
    Files
  • Destroying Infrastructure with
    Terraform
  • Replacing Infrastructure with
    Terraform
  • Creating Resources: AWS Subnet
  • Customizing Terraform Configuration
    with Variables
  • Security Groups and Firewall
    Configuration
  • Automatic SSH Key Pair Generation
    with Terraform
  • Terraform Data Sources
  • Filtering AMIs using Data Sources
  • Query Data with Outputs
  • Understanding Terraform State
  • The Terraform State Command
  • Running Commands Using User Data
  • Provision Infrastructure with Cloud-Init
  • Terraform Provisioners
  • Terraform Troubleshooting & Logging

HCL In Depth

  • Terraform Simply Types: Number,String, Bool
  • Terraform Collection Types: List and Map
  • Creating IAM Users using Count
  • Using Dynamic Blocks
  • Conditional Expressions

Terraform Remote State & Security

  • Backends and Remote State Management
  • Terraform Remote State on Terraform Cloud
  • State Locking
  • Managing Secrets
    • Storing Secrets using Variables
    • Storing Secrets using

Change Control Best Practices with Terraform & Git

  • Appropriate branching strategies
  • Integration with CI/CD pipelines in Gitlab
  • Best practices for commit messages format
  • Change Control audit trail using Git log
  • Change Control security using Gitlab users and Public Key Infrastructure (PKI)

Skill Level

Intermediate

Suitable For

Developers who want to learn how to automate the orchestration of infrastructure across multiple cloud platforms with Terraform

Prerequisites

  • DEVOPS-102: Linux Fundamentals (or equivalent)
  • DEVOPS-103: Git Fundamentals (or equivalent)
  • DEVOPS-104: Continuous Integration Basics (or equivalent)
  • DEVOPS-204: Continuous Integration & Continuous Delivery with Gitlab (not essential,
    but very strongly recommended)
  • DEVOPS-205: AWS Cloud Practitioner Preparation (or equivalent)

Duration

3

 day

s

Related Topics

Enquire Now
DEVOPS-207

Infrastructure as Code: Provisioning & Change Control with Terraform and GitOps

Download as PDF
Enquire Now

Skill Level

Intermediate

Suitable For

Developers who want to learn how to automate the orchestration of infrastructure across multiple cloud platforms with Terraform

Duration

3

 day

s

Related Topics

Course Overview

This course starts with the basics by providing an overview of Infrastructure-as-Code
(IaC), which is the basic concept for Terraform. We will explore how Terraform can be
used as an IaC tool on Amazon Web Services (AWS) and also cover its features and
benefits. We’ll then look at how Terraform transforms lines of code into real
infrastructure on AWS.


Terraform allows infrastructure to be expressed as code. The desired state is expressed
in a simple human-readable language. Terraform uses this language to provide an
execution plan of changes, which can be reviewed for safety and then applied to make
changes. Extensible providers allow Terraform to manage a broad range of resources,
including hardware, IaaS, PaaS, and SaaS services.


By expressing all infrastructure as code, source code version control techniques (with
Git) become available as a superior change control process, wherein all changes to
systems are tracked, with a full audit history of who made changes, and when the
changes were made.

Learning Outcomes

  • Understanding of Infrastructure as code
  • Understanding of Terraform basics and its execution flow
  • Understanding HCL (HashiCorp Configuration Language) syntax
  • Creating infrastructure on AWS using Terraform
  • Defining variables in Terraform
  • Best practices for Change Control using Git

Course Outline

Introduction to Infrastructure as Code (Iac) & Terraform

  • Introduction to Infrastructure as code
    and Terraform
  • Hashicorp Configuration Language
    (HCL) syntax
  • Create your first infrastructure using
    Terraform execution flow
  • Updating a resource in Terraform
    configuration file
  • State file and other files created by
    Terraform
  • Defining Variables in Terraform
  • Passing variables via terraform.tfvars
    file
  • Writing configuration files to create a
    resource in AWS
  • Creating a resource in AWS via
    Terraform

Provisioning AWS Infrastructure with Terraform

  • Terraform Code Structure
  • Terraform Providers
  • Terraform Configuration Syntax
  • Initializing Working Directories
  • Authenticating to AWS
  • Creating Resources
  • Terraform Plan & Apply
  • Formatting & Validating Configuration
    Files
  • Destroying Infrastructure with
    Terraform
  • Replacing Infrastructure with
    Terraform
  • Creating Resources: AWS Subnet
  • Customizing Terraform Configuration
    with Variables
  • Security Groups and Firewall
    Configuration
  • Automatic SSH Key Pair Generation
    with Terraform
  • Terraform Data Sources
  • Filtering AMIs using Data Sources
  • Query Data with Outputs
  • Understanding Terraform State
  • The Terraform State Command
  • Running Commands Using User Data
  • Provision Infrastructure with Cloud-Init
  • Terraform Provisioners
  • Terraform Troubleshooting & Logging

HCL In Depth

  • Terraform Simply Types: Number,String, Bool
  • Terraform Collection Types: List and Map
  • Creating IAM Users using Count
  • Using Dynamic Blocks
  • Conditional Expressions

Terraform Remote State & Security

  • Backends and Remote State Management
  • Terraform Remote State on Terraform Cloud
  • State Locking
  • Managing Secrets
    • Storing Secrets using Variables
    • Storing Secrets using

Change Control Best Practices with Terraform & Git

  • Appropriate branching strategies
  • Integration with CI/CD pipelines in Gitlab
  • Best practices for commit messages format
  • Change Control audit trail using Git log
  • Change Control security using Gitlab users and Public Key Infrastructure (PKI)