
Provision infrastructure through software to achieve consistent and predictable environments. Automate provisioning to avoid manual steps and ensure the final state is known and reproducible.
Discover how the Terraform executable enables cross-platform infrastructure automation by downloading the CLI for Windows, macOS, or Linux, adding it to your PATH, and running Terraform commands from anywhere.
Learn how Terraform files, with the .tf extension, organize provider configurations and separate variables and resources. Explore an Azure storage account example with nested network rules.
Explore Terraform plugins as the provider connectors, navigate the Terraform registry to learn official, verified, and community providers, and configure resources across AWS, Azure, Google Cloud Platform, and more.
Track and manage Terraform state stored as a json file, mapping resources to cloud instances, so configuration changes are compared against the latest state and applied as needed.
Learn to automate infrastructure with Terraform by mastering common commands, init, plan, apply, destroy, refresh, and state management, along with workspaces, providers, modules, and graph outputs.
Install and set up Visual Studio Code, install the Terraform extension, and enable autocompletion to write and test Terraform files across Windows, Mac OS, and Linux.
Learn how hcl configuration files with tf extension become terraform configurations, create main.tf in Visual Studio Code, organize folders, and understand modules, variables.tf, and outputs.tf merging into a single document.
Explore Terraform block syntax in the main.tf file and specify a compatible Terraform version. Initialize the working directory with Terraform init and observe backend and provider plugin setup.
Explore how Terraform declares required providers with a local name, source, and version constraint to configure Azure and AWS via the HashiCorp Terraform registry.
Master infrastructure automation by configuring providers in terraform, running terraform init to download the required provider, resolving version constraints, and setting up provider blocks with aliases and Azure credentials.
Explore how the plan command generates an execution plan by checking the current Terraform state, comparing configuration with the prior state, and proposing changes to align resources.
Discover how Terraform manages cloud resources across providers, create an Azure resource group, and use resource blocks, init and plan commands to deploy and organize sub-resources.
In the Azure portal, create a Terraform execution plan using Cloud Shell, a Terraform folder, and a Main.tf file, then run init and plan to preview resource group creation.
Use the Terraform apply command to execute a plan, approve changes, and optionally apply a named execution plan to create resources such as the example resource group in Western Europe.
Learn to define and use Terraform outputs to expose resource attributes after apply, view them with terraform output, and reuse values like id and name later in the configuration files.
Learn to execute Terraform commands locally by installing and configuring the Azure CLI, logging in, and running plan and apply to manage Azure resources.
Explore how Terraform variables gain descriptions and validations, using the length function on var.project_name to enforce input length and provide descriptive error messages.
Explore string interpolation in Terraform to build resource names from a project name variable. Use braces and the dollar sign to append main or secondary suffixes and run a plan.
Learn how to use local values in Terraform by creating a locals block, defining reusable expressions, and applying them to resource names and tags via the local keyword.
Discover how terraform's count property controls resource creation, use index for unique names, and interpolate names; set count to zero to revert to a previous state via an execution plan.
Learn to iterate with a for loop in Terraform, using local names to convert each entry to uppercase with the upper function, and filter with substring checks, producing outputs.
Explore how Terraform data sources retrieve outside information from providers like Azure App Service, query by name and resource group, and expose results via outputs.
Learn to create an Azure virtual network with Terraform by selecting a provider and configuring essential arguments such as name, resource group, address space, and location.
Learn to create Terraform configurations with PyCharm, using autocomplete and plugins to define Azure resource groups and a virtual network, initialize backends, and generate an execution plan.
Learn to organize Terraform configurations by separating input and output variables into dedicated files, declare string variables for name and location, and reference them in resources.
Learn how to create and organize Terraform modules and submodules in a dedicated modules folder, define main.tf, variables.tf, and outputs, and use Terraform plan to preview resource creation.
Learn to use Terraform registry modules to provision an Azure virtual network with a resource group, VNet, subnets, and tags, then apply changes and read the VNet ID output.
Back up and manage Terraform remote state on Azure by creating a storage account and container, generating a SAS token, and configuring main.tf, variables.tf, and outputs.tf for a demo project.
Learn to manage remote state with Azure by creating a backend.config.txt and a backend block, linking to a storage account and Terraform state container, and migrating local state.
Master deploying terraform configurations with Azure DevOps using Azure Repos and pipelines, cloning with Visual Studio Code, creating main.tf, and pushing changes.
Configure an Azure DevOps pipeline to run Terraform tasks on an Ubuntu agent, install Terraform, initialize, plan, and apply the configuration with Azure RM and a storage account for state.
Define a terraform.tfvars file to automate input for Terraform in Azure DevOps, then create a release, run the execution plan, and validate resource group, blob service, and Terraform state file.
Learn to maintain Terraform infrastructure state with Azure DevOps, edit Terraform.tfvars, and trigger continuous deployment on code changes, creating new releases and updating resource groups.
Welcome to the Terraform course!
The best course to master Terraform.
Hi, I'm Hector Perez, Microsoft MVP and creator of the best courses in the field for several years now. This new Terraform course is no exception.
I have created the most complete step-by-step guide to Terraform you will find. With a complete set of tools and exercises, I'll teach you how to create your first Terraform project in just a few hours and how to use the HCL language to work with it.
Terraform is a powerful tool for creating, changing and managing infrastructure. It provides a simple workflow for writing code to create and change your infrastructure so you don't have to deal with unnecessary complexity. Terraform runs on any operating system, including Windows, MacOS, Linux and FreeBSD.
Terraform allows you to work seamlessly in the cloud without having to manage hardware infrastructure. Terraform supports many different cloud providers, deployment tools and configuration management styles. Terraform is a tool for managing cloud infrastructure as code. It supports many different cloud providers, deployment tools, and configuration management styles. Terraform reads a configuration file that describes the infrastructure to be built and uses the appropriate tools to create or update the environment.
Some of the topics we will look at in the course are: Terraform components Recommended tools to work with terraform The Hashicorp configuration language Creating and using Modules Remote state management Continuous integration with Terraform Among other topics Translated with.