
Explore infrastructure as code with Terraform to create, update, and destroy resources. Master core concepts and the Terraform workflow with hands-on labs for provisioning servers, VMs, databases, and networks.
Explore the Terraform workflow from configuring main.tf with Hql to initializing providers, previewing changes with plan, and applying updates to create and manage infrastructure state.
Explore the HashiCorp configuration language (HCL) basics for Terraform, including arguments and blocks, and how resource and input blocks with filename and content arguments define infrastructure configuration.
Discover how providers in Terraform act as plugins that translate configurations into API calls, enabling resource management across AWS, Azure, Google Cloud Platform, and more, with init and version pinning.
Explore terraform providers, browse registry.terraform.io for official, partner, and community providers, and learn to pin a specific provider version with the required_providers block and terraform init.
Initialize providers with Terraform init, then work with local and random providers to create resources. Plan and apply changes to generate a random integer and verify results.
Explore using input variables in Terraform to decouple configuration from code, applying variable values for file name and content in a local file resource.
Declare and reference input variables with a variable block, use defaults to set values, and apply types such as string, number, bool, or any to control Terraform configurations.
Learn how to declare and type variables in Terraform with practical examples, including string and number types, defaults, description, nullable, sensitive, and validation, then apply to a local file resource.
Discover Terraform complex types, including lists, sets, maps, tuples, and objects, and learn how to declare, access elements by index or key, and enforce type constraints for robust configurations.
Explore how Terraform resolves input variable values from environment variables and tfvars. Understand the precedence, noting dash var-file has the highest priority and auto files follow lexical order.
Declare and use output variables in Terraform to surface resource attributes, such as a random integer result and an AWS instance public IP, via terraform apply and the output command.
Understand Terraform's implicit resource dependencies, such as linking a random integer to a local file via a referenced result attribute, and provisioning an Azure resource group with a container registry.
Explore explicit dependencies in Terraform by using the depends_on meta-argument to force creation order between resources, illustrated with a random integer and a local file.
Explore the difference between mutable and immutable infrastructure, and learn how Terraform's lifecycle meta-arguments, including create before destroy, prevent destroy, ignore changes, and replace triggered by, control resource updates.
Terraform is an infrastructure as code tool, used to provision and manage infrastructure with code. It makes the process of creating, updating and deleting resources more easy and consistent.
With Terraform, you can provision a set of resources consistently using the same configuration file as many time as you want, and you can delete all of them by running a single command.
This course will take you in a step-by-step way to start writing your own terraform configuration files for provisiong resources locally or in a cloud provider like Azure, AWS or whatever you want.
By taking this course you will learn the basics of Terraform needed to start writing your own Terraform configuration files and provisioning, updating and deleting the resources that you want.
Requirements for this Course:
Basic programming knowledge
Who this course is for:
The course is for anyone who wants to start learning the DevOps tool known as Terraform
This course is ideal for people who are new to Infrastructure as code and who want to start provisioning infrastructure using an IaC tool like Terraform
What you’ll learn
How write Terraform configuration files?
What are providers?
Working with some terraform commands
Working with input variables
Working with output variables
Setting resource dependencies
and more