
Develop hands-on Terraform expertise with eight sections on providers, resources, modules, variables, and backend settings. Includes practice quizzes and a practice test to prep for the Hashicorp Terraform associate exam.
Explore how Terraform, an infrastructure as code tool, uses configuration files to provision, manage, and version cloud resources across providers with execution plans and multi-cloud support.
Explore a simple Terraform config that defines a provider and a resource, uses static authentication, initializes, plans, and applies to create resources.
Install Terraform on macOS and Linux by downloading the package, moving it to a system location to make it accessible, and following the official website's manual installation method.
Install Terraform on Windows by downloading the official binary from the official website, extracting it, setting the system PATH via environment variables, and verifying installation in a new command prompt.
Install and configure a Linux environment in a VirtualBox VM; set up Ubuntu and install Terraform via SSH by adding the HashiCorp repo and curl.
Launch a terraform-managed aws ec2 instance by configuring provider aws and resource aws_instance with ami and instance_type, then run init, plan, and apply to deploy and verify.
Install vscode from code.visualstudio.com, run installer, and add remote extensions such as remote containers. Connect to a remote server and open the data from underscore demo folder to start coding.
Learn how Terraform uses the required_providers block to declare a provider’s local name and source address, download from the registry, and manage official, verified, and community providers.
Explore how the required_providers block defines source address and version constraints, including namespace and host components, provider plugins download, and dependency log file management during terraform init.
Define Terraform resources with resource blocks by type and name, referencing provider resources. Track state with plan, apply, and refresh to reconcile the desired state with the current state.
Learn how Terraform exposes resource attributes and access them with resource_type.resource_name.attribute, and how to display a chosen attribute using an output block.
Learn two ways to destroy resources in terraform—modify the config or use the destroy command, with caution to avoid state inconsistency, including targeted destruction with -target.
Explore how resource lifecycle blocks in Terraform control creation, destruction, and updates. Use create_before_destroy, prevent_destroy, and ignore_changes to govern resource behavior.
Explore how data sources in Terraform read existing infrastructure with data blocks, contrasting them with managed resources that create and delete. Learn to filter and reference data for dynamic configuration.
Terraform provisioners enable local-exec and remote command execution during resource creation or destruction. Use them sparingly, as they complicate plans and remote state; prefer provider features or configuration management instead.
Learn how terraform provisioners remote-exec and file connect to a remote vm via ssh, copy files, and run scripts using line or script blocks.
Explore creation-time and destroy-time provisioners in Terraform, learn how remote-exec and file or local-exec provisions bootstrap systems, manage tainted resources, and control failure behavior with continue or fail.
Learn how Terraform uses modules to improve usability through reusable code and readability. Discover root and child modules, module syntax, and passing arguments to share configurations.
Learn how to source Terraform modules from local, GitHub, and registry sources, configure providers within modules, and use registry modules to streamline infrastructure deployment.
Learn to define named values and variables in Terraform using variable blocks, supply default values, add descriptions, apply validation, and use sensitive attributes to hide values.
Learn to declare a root module variable, set its default, description, and sensitive flags, and assign values using -var, -var-file, or environment variables with examples.
Define input variable types and constraints, including string, number, list, and map, to ensure valid Terraform values and reliably configure resources.
Learn to pass values to variables in a child module from the root module, using explicit or default values during a terraform plan.
Learn how to use output values in Terraform to return and print resource attributes from child modules to the root module, with practical examples.
Learn how to define local values with a local block, create identifiers and maps, and reference them in resources, including listing local values.
Learn how count and count.index enable creating multiple AWS instances or modules, with zero-based indexing and sample_instance naming to streamline Terraform configuration.
Explore using for_each in Terraform to name resources from lists, maps, and modules, leveraging index and key value objects to create multiple instances.
Explore how the depends_on argument enforces resource dependencies in Terraform by linking instances to security groups and elastic IPs, and observe how plan and apply order respect these relationships.
Explore strings and templates in Terraform, including string literals, here documents, interpolation, and directives like if and for to build dynamic configurations.
Learn arithmetic, comparison, and logical operators used in expressions, including equality, not equal, and assignment, with examples of results and negation.
Explore function call expressions and conditional expressions in Terraform, learning built-in functions, argument expansion, and how conditional expressions drive resource creation during plan and apply.
Explore for expressions in Terraform, transforming input collections—lists and maps—into new outputs with conditional filtering, index-value handling, and map or object results.
Discover how splat expressions in Terraform simplify looping through lists, create multiple resources, and collect private IPs for output.
Explore how to use dynamic blocks in Terraform to generate multiple nested blocks within a resource, such as security group ingress rules, using for_each and a local list.
Learn how terraform workspaces isolate configuration data and manage multiple states, with commands to create, switch, and list workspaces, including default and production scenarios.
Explore how the local backend stores state and performs operations, compare enhanced and standard backends, and demonstrate configuring a local path, workspaces, and state files.
Configure a remote backend to store state in the cloud and run plan and apply remotely, with authentication via token, and define organization and workspace for your cloud account.
explores common repository challenges with shared state, concurrency, and secrets, and shows how a remote backend like data from cloud solves locking, isolation, and access control while securing state.
Configure S3 as a remote Terraform backend with dynamodb for state locking to ensure durable, concurrent state management and reliable logging.
Utilize the Terraform remote state data source to read root module outputs from other configurations. Compare local and remote backends, and note the risks of exposing state data.
Import existing resources into Terraform state to bring them under management. Write the resource configuration blocks manually, as import does not generate configuration and runs locally with remote backends.
Learn to configure debug logging in Terraform using environment variables and five log levels, including core and provider logs, with a sample config and file redirection from Terraform 0.15 onward.
Explore numeric functions in Terraform, including absolute, ceil, floor, log, max, min, and power, and demonstrate converting hexadecimal and octal strings to decimal and determining number signs.
Explore Hashicorp Terraform string functions, including chomp, printf-style formatting, join and split, lower and upper case, regex and regex all, replace, trim, and substring.
Explore Terraform collection type functions, including all, any, split, coalesce, compact, concat, lookup, merge, range, slice, and more, with practical, example-driven explanations.
Explore filesystem path and date-time functions in Terraform. Learn to resolve paths, derive dirname and basename, expand to home, read file contents, check existence, format dates, add time, and timestamp.
Explore encoding and decoding in terraform, including 60-40 code, 64 encoded, base64, and essential conversion functions like boolean, list, map, and set.
Explore terraform clis for initialization, including init, plan, apply, destroy, and module management, with backend setup, provider configuration, upgrade, reconfigure, and state handling.
Explore Terraform clis for provisioning infrastructure, including creating and applying plans, reading execution plans from files, showing current state, and safely destroying resources with optional non-interactive prompts.
Explore formatting and inspecting clis in Terraform with the console for debugging, using canonical form checks, validation before plan and apply, and generating dependency graphs and outputs.
Use cli commands to manipulate terraform state, taint and recreate resources, move and rename items, and manage remote state with state pull and state push.
Terraform is a tool for Building, Changing, and Versioning infrastructure safely and efficiently.
It is known as Infrastructure As Code since it is used for automating the whole process of maintaining Infrastructure.
Popular infrastructure and cloud providers contribute to integrating their plugins in Terraform. So it is the best choice for multi cloud and hybrid cloud deployments.
Terraform can manage existing and popular service providers as well as custom in-house solutions.
It uses configuration files to codify the setup required for any application.
Terraform supports building and managing of multi-tier architecture.
It becomes easy to build and scale the infrastructure using terraform, even multiple teams can deploy their isolated infrastructure if they want.
Terraform can be integrated with version control common registries like git or bitbucket. So it helps multiple members of an organisation to share their code and work together.
What will you get from this Course
Learn Terraform Basics to Advanced level. The course starts with the introduction to terraform, then it discusses the very basic components like variables, expressions, statements and blocks. Then it talks about the reusability features like functions, modules. The course also contains the concept of how to maintain the remote state of the infrastructure and addresses the corresponding issues and challenges.
Apply the knowledge in the Organisation to automate any type of Cloud or Infrastructure Deployment
Comes with proper Lecture Notes and implemented hands-on codes
Prepare for Hashicorp Certified Terraform Associate Certification which is one of the demanding certificates in the job market
Prepare for interview