Introduction to OpenTofu
Getting Started with OpenTofu and OpenTofu Configuration Language
OpenTofu Providers, Resource Types, Input and Output variables, Provisioners
Migrating from Terraform to OpenTofu
Data sources, Modules and Registries in OpenTofu
Local and Remote State file Management with Backends
Working with OpenTofu using timeouts, taints, untaints, graphs, aliases, local value block
Process of Importing resources inside OpenTofu Management
Meta-Arguments, Functions and Workspaces
Real Time OpenTofu Sample Projects for Network, Compute and Container Orchestration
What’s in this course?
This Infrastructure Automation with OpenTofu course is designed for absolute beginners to experts looking to learn OpenTofu. It introduces the basic fundamental blocks needed to get started with OpenTofu. The course begins with an introduction to OpenTofu, explaining how it differs from Terraform, followed by real time OpenTofu setup, OpenTofu Configuration Language, Providers, Resources and OpenTofu Workflow. This course also covers the core critical concepts such as Input variables, Output block, Provisioners and Datasources, Modules, Backends, State File management followed by other topics like workspaces, Graphs, Taints, Dependencies and much more. We will also learn how existing Terraform code can be migrated to the OpenTofu ecosystem with ease. Don’t worry if you are new to OpenTofu, we are going to get started with the absolute basics. Each lecture in this course is accompanied by real hands-on demos.
What is OpenTofu?
In today’s complex IT landscape, creating, managing and updating a variety of infrastructure platforms and their services (can be IaaS, PaaS or SaaS) can be a daunting task. This is where OpenTofu – a powerful open-source, community driven, stable, simple and impartial software steps in, offering powerful Infrastructure as Code capabilities. The OpenTofu project is part of The Linux Foundation and the first release of OpenTofu was made in January 2024.
Legal Notice:
Get Instant Notification of New Courses on our
Telegram channel.
OpenTofu is open-source, community-driven Infrastructure as Code tool which is managed by the Linux Foundation. OpenTofu and the OpenTofu logo are trademarks or registered trademarks of The Linux Foundation in one or many countries. The Linux Foundation and other parties may also have trademark rights in other terms used herein. This course is not certified, accredited, affiliated with, nor endorsed by The Linux Foundation.
Course Structure:
- Lectures
- Demos
- Quizzes
- Assignments
Course Contents:
- Introduction to OpenTofu
- Getting Started with OpenTofu
- OpenTofu Configuration Language
- OpenTofu Providers
- OpenTofu Workflow and Resources
- Migrating from Terraform to OpenTofu
- Input Variables
- Output Values
- Provisioners
- Data Sources
- Modules and Registries
- State files
- OpenTofu Remote State and Backends
- Working with OpenTofu – timeouts, taints, graphs, aliases
- Local Value Block
- Import Existing Infrastructure
- Meta-Arguments – Lifecycle Rules, depends_on, count, for_each
- Built-In Functions
- Workspaces
All sections in this course are demonstrated Live. The intention for enrolled users is to setup their own OpenTofu environment, perform the exercises and learn by doing!!!
Introduction
Course Introduction
OpenTofu Introduction | OpenTofu vs Terraform
Demo – OpenTofu Documentation
Introduction to OpenTofu
Github Repository Link
Course Material – Infrastructure Automation with OpenTofu Presentations
Getting Started with OpenTofu
Pre-Requisites and Setting up OpenTofu
Demo – AWS Instance Creation (Optional)
Demo – OpenTofu setup for AWS Platform
Demo – OpenTofu setup for macOS
Getting Started with OpenTofu
OpenTofu Configuration Language
OpenTofu Configuration Language
Demo – OpenTofu Configuration Language Documentation
OpenTofu CLI
Demo – OpenTofu CLI usage
OpenTofu Configuration Language
OpenTofu Providers
Providers and their Types, Provider Versions and Multiple Provider Usage
Demo – Provider Documentation
Demo – First Provider file in OpenTofu
Demo – Multiple providers
OpenTofu Providers
OpenTofu Workflow and Resources
OpenTofu Workflow and Resources
Demo – OpenTofu Resources Documentation
Demo – Workflow for instance creation on AWS
Resource updates (In-place and Recreate)
Demo – Resource Updates – In-place and Recreate
Resource References
Demo – Resource References
OpenTofu Workflow and Resources
Migrating from Terraform to OpenTofu
Migration and Rollback Process
Demo – Terraform to OpenTofu Migration
Migrating from Terraform to OpenTofu
Input Variables in OpenTofu
OpenTofu File Structure
Demo – OpenTofu files
Demo – Visual Code Overview (Optional)
Input Variables
Demo – Input Variables
Demo – Input Variables with -var Option
Demo – Input Variables with Environment variables
Demo – Input Variables with .tfvars files
Demo – Input Variables Precedence
Variable – Type Constraints
Demo – Variable- Type Constraints
Demo – Advanced Use of Variables (optional)
Input Variables in OpenTofu
Output Values in OpenTofu
Understand Output Values
Demo – Tofu Console Command and Output Block
Output Values in OpenTofu
Provisioners and Connection Block
Provisioners, Provisioners Types and Connection Block
Demo – Local Provisioners | When and On-failure options
Demo – Remote Provisioners
Demo: File Provisioners
Provisioners and Connection Block
Data Sources in OpenTofu
Understanding Data Sources
Demo – Challenges without Data Sources
Demo – Resolution using Data Sources
Data Sources in OpenTofu
Modules and Registries
Understanding Modules and Registries
Demo – Navigating Modules Documentation
Demo – Module Registry
Creating Custom Modules
Demo – Create Child Module
Demo – Create Root Module
Demo – Publish Code to Registry
Modules and Registries
State and State Files in OpenTofu
State, State Files and their Purpose
Demo – State filles – terraform.tfstate and terraform.tfstate.backup
Demo – State Files in Action
“tofu state” Command
Demo – “tofu state” CLI usage
State and State File in OpenTofu
OpenTofu Remote State and Backends
Remote State, Backends and their significance
Demo – Preparing Remote Backend
Demo – Implementing Remote Backend
OpenTofu Remote State and Backends
Working with OpenTofu
Timeouts and debug
Demo – Operation Timeouts and Debugging
OpenTofu Taints and Untaints
Demo – Taint and Untaint
OpenTofu Graph Command
Demo – “tofu graph” CLI Usage
Import in OpenTofu
Demo – Importing Existing Infrastructure
Local Values Block
Demo – Local Values Block
Alias
Demo – Provider Aliases
Working with OpenTofu
Meta-Arguments, Functions and Workspaces
lifecycle Meta-Argument
Demo – Lifecycle Rules
depends_on Meta-Argument
Demo – depends_on Meta-Argument
count Meta-Argument
Demo – count Meta-Argument
for_each Meta-Argument
Demo – for_each Meta-Argument
functions (min, max, length, file, offset, lookup etc.)
Demo – Functions in OpenTofu
Workspaces
Demo – Workspaces
Meta-Arguments, Functions and Workspaces
Sample OpenTofu Projects
Project1 and Project2 Overview (VPC Network and Compute)
Hands-On Project1 – VPC & Other Network Components
Hands-On Project2 – Compute
More Learnings
More Learnings – Free Online Assessments Platform