← All courses

Training

Terraform Essentials

Terraform Essentials

Comprehensive coverage from bare metal to cloud services in 3 days

In the realm of cloud computing and infrastructure management, the ability to efficiently and reliably provision and manage resources is crucial. Terraform, an open-source Infrastructure as Code (IaC) tool developed by HashiCorp, enables developers to define and provision cloud infrastructure using a high-level configuration language.

This three-day course starts from the absolute basics and progressively covers advanced Terraform topics on different platforms like Linux, Windows, AWS, and Azure. Whether you're looking to manage bare-metal servers or cloud environments, this course will provide hands-on experience and foundational knowledge, making it fun and engaging through practical examples and interactive exercises.

Learning Outcomes

By the end of this course, participants will be able to:

  • Understand the principles of Infrastructure as Code and the fundamentals of Terraform.
  • Install and configure Terraform on different operating systems including Linux and Windows.
  • Write basic to advanced Terraform configurations using HashiCorp Configuration Language (HCL).
  • Provision and manage infrastructure on AWS and Azure using Terraform.
  • Utilize various Terraform commands and operations to manage and update infrastructure.
  • Apply best practices for structuring and maintaining Terraform projects.

Prerequisites

  • Basic understanding of command-line tools and operating systems (Linux and Windows).
  • Familiarity with cloud computing concepts and at least one cloud provider (AWS, Azure, or similar).
  • Access to a computer with administrative privileges to install necessary software.

Training Outline

  1. Introduction to Infrastructure as Code
    1. Definition and importance in modern IT environments.
    2. Overview of tools and technologies in IaC with a focus on Terraform.
  2. Getting Started with Terraform
    1. Installation and setup on Linux and Windows.
    2. Terraform basics: Workflow (write, plan, create), providers, and Terraform Registry.
  3. Basic Configuration with HashiCorp Configuration Language (HCL)
    1. Syntax and structure of HCL.
    2. Writing your first configuration: Initializing configurations and applying changes.
    3. Resource management: Defining and provisioning resources.
  4. Terraform on Bare Metal Infrastructure
    1. Understanding the approach to managing bare metal resources.
    2. Configuring Terraform to manage non-cloud, physical servers.
  5. Terraform with AWS
    1. Setting up AWS provider.
    2. Managing AWS resources: VPC, EC2, S3, and more.
    3. Security and network configurations using Terraform.
    4. Taking over AWS resources
    5. Collaborative storage of State file on S3
  6. Terraform with Azure
    1. Configuring the Azure provider.
    2. Provisioning Azure resources: VMs (with a website)
  7. Advanced Terraform Features
    1. Modules and workspaces for managing larger scale deployments.
    2. State management: Inspecting, modifying, and troubleshooting Terraform state.
    3. Backends in Terraform for state storage and locking.
  8. Terraform Operations and Functionality
    1. Terraform commands: Plan, Apply, Destroy, and others.
    2. Importing existing infrastructure into Terraform management.
    3. Using Terraform Cloud for team collaboration.
  9. Best Practices and Real-World Scenarios
    1. Structuring Terraform code for multi-environment setups (dev, staging, production).
    2. Tips for maintaining and scaling Terraform configurations.
    3. Integrating version control systems with Terraform workflows.

This course outline ensures a thorough introduction to Terraform, equipped with practical knowledge and real-world applications, designed to make learning both effective and enjoyable for all participants.

Practical, connected learning

My wider training approach brings hands-on implementation and systems thinking together, connecting technology with real operational needs.