• Stars
    star
    2,268
  • Rank 20,315 (Top 0.5 %)
  • Language HCL
  • Created over 1 year ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Master Terraform in 7 days using this Zero to Hero course.

Terraform Zero to Hero course

Day 1: Getting Started with Terraform

Introduction to Terraform and IaC

In this session, we'll introduce you to the fundamental concepts of Terraform and Infrastructure as Code (IaC). Learn why Terraform is crucial for managing infrastructure and how IaC streamlines provisioning.

Installing Terraform on MacOS, Linux and Windows

Get your hands dirty by installing Terraform on both MacOS, Linux and Windows. We'll guide you through the process with clear instructions and commands.

Setting up Terraform for AWS

Dive into AWS integration with Terraform. You'll learn how to set up your AWS credentials and configure the AWS provider within Terraform to start provisioning resources.

Writing Your First Terraform Code

Start writing actual Terraform code with a simple example. Learn about the basic structure of a Terraform configuration file and how to define resources using the HCL language.

Terraform Lifecycle

Understand the lifecycle of terraform. What is terraform init, plan and apply.

Launching an EC2 Instance

Take your skills up a notch by provisioning an EC2 instance on AWS using Terraform. Explore attributes like instance type, AMI, and tags to customize your instance.

Terraform State Basics

Understand the importance of Terraform state files. Learn about desired and current states, and how Terraform manages these states to ensure infrastructure consistency.

Day 2: Advanced Terraform Configuration

Understanding Providers and Resources

Deepen your knowledge of providers and resources. Explore the role of different providers for various cloud platforms and understand how resources define infrastructure components.

Variables and Outputs in Terraform

Discover the power of variables for dynamic configurations. Learn how to define, declare, and utilize variables effectively. Explore outputs to retrieve and display essential information.

Conditional Expressions and Functions

Elevate your configurations with conditional expressions, adding logic to your code. We'll introduce you to Terraform's built-in functions for tasks like string manipulation and calculations.

Debugging and Formatting Terraform Files

Master the art of debugging Terraform configurations.Plus, learn why proper formatting with terraform fmt is crucial.

Day 3: Building Reusable Infrastructure with Modules

Creating Modular Infrastructure with Terraform Modules

Unlock the potential of reusability with Terraform modules. Understand how modules enable you to create shareable and organized infrastructure components.

Local Values and Data Sources

Simplify complex expressions using local values. Dive into data sources and learn how to fetch data from existing resources or external systems, enhancing your configurations' flexibility.

Using Variables and Inputs with Modules

Explore the versatility of using variables within modules to customize their behavior. Learn how inputs work within modules and the benefits they offer.

Leveraging Outputs from Modules

Utilize module outputs to access critical information or propagate data to your root configuration. Learn how to make your modules more informative and useful.

Exploring Terraform Registry for Modules

Embark on a journey through the Terraform Registry. Discover pre-built, community-contributed modules and learn how to incorporate them into your own configurations.

Day 4: Collaboration and State Management

Collaborating with Git and Version Control

Collaborate effectively using Git and version control. Grasp fundamental Git commands such as cloning, pulling, and pushing repositories to enhance teamwork.

Handling Sensitive Data and .gitignore

Tackle security challenges associated with sensitive data in version control. Explore the importance of .gitignore to exclude sensitive files from being committed.

Introduction to Terraform Backends

Uncover the role of Terraform backends in remote state storage. Learn why they're essential for maintaining infrastructure state and configurations.

Implementing S3 Backend for State Storage

Get hands-on experience configuring an S3 bucket as a backend for remote state storage. Understand how this setup improves collaboration and state management.

State Locking with DynamoDB

Dive into state locking and the prevention of concurrent updates. Implement state locking using DynamoDB as a backend mechanism, ensuring state consistency.

Day 5: Provisioning and Provisioners

Understanding Provisioners in Terraform

Learn about provisioners, mechanisms for executing actions on resources during creation and destruction. Understand how they facilitate customization.

Remote-exec and Local-exec Provisioners

Differentiate between remote-exec and local-exec provisioners. Explore how remote-exec provisions actions on remote servers, while local-exec performs tasks locally.

Applying Provisioners at Creation and Destruction

Discover when to use provisioners during resource creation or destruction. Configure provisioners within resource blocks to execute specific actions.

Failure Handling for Provisioners

Gain insights into handling provisioner failures. Learn about retry mechanisms, timeouts, and the on_failure attribute to control provisioner behavior on failure.

Day 6: Managing Environments with Workspaces

Introduction to Terraform Workspaces

Understand the concept of workspaces and their role in managing different environments. Learn how workspaces aid in isolating configurations.

Creating and Switching Between Workspaces

Learn how to create new workspaces and switch between them using terraform workspace commands. Understand their significance in environment management.

Using Workspaces for Environment Management

Learn deeper into how workspaces streamline environment management. Comprehend their benefits in maintaining separate state files for various settings.

Day 7: Security and Advanced Topics

HashiCorp Vault Overview

Gain an overview of HashiCorp Vault, a powerful tool for secret management and data protection. Understand its significance in maintaining secure configurations.

Integrating Terraform with Vault for Secrets

Learn how to integrate Terraform with Vault to manage sensitive data securely. Discover how Vault can be used to store and distribute secrets within configurations.

More Repositories

1

aws-devops-zero-to-hero

AWS zero to hero repo for devops engineers to learn AWS in 30 Days. This repo includes projects, presentations, interview questions and real time examples.
Python
6,563
star
2

Jenkins-Zero-To-Hero

Install Jenkins, configure Docker as slave, set up cicd, deploy applications to k8s using Argo CD in GitOps way.
Python
6,209
star
3

Docker-Zero-to-Hero

Repo to learn Docker with examples. Contributions are most welcome.
3,629
star
4

python-for-devops

Learn Python from DevOps Engineer point of you.
Python
2,600
star
5

Azure-zero-to-hero

Repository to learn Azure from Zero. This repository covers the complete Azure fundamentals required for a DevOps Engineer.
HCL
2,543
star
6

Kubernetes-Zero-to-Hero

Creating this repo with an intent to make Kubernetes easy for begineers. This is a work-in-progress repo.
1,479
star
7

observability-zero-to-hero

[WIP]: Repo for learning observability
JavaScript
1,239
star
8

GitHub-Actions-Zero-to-Hero

Repository to kick start your journey with GitHub Actions
Python
1,135
star
9

shell-scripting-projects

Projects on shell scripting. Goal is to simulate real time projects as much as posible.
Shell
834
star
10

devops-interview-preparation-guide

Share your interview questions and help others. Let's build this interview preparation guide together.
636
star
11

ansible-zero-to-hero

Repository to learn Ansible from Zero. This repository covers the complete Ansible fundamentals along with examples required for a DevOps Engineer.
HTML
510
star
12

cicd-end-to-end

Using this repo for an End to End CICD Demo
Python
480
star
13

write_your_first_terraform_project

helps you learn terraform and write your first project
HCL
471
star
14

kubernetes-troubleshooting-zero-to-hero

Learn how to troubleshoot the most common Kubernetes Issues
Dockerfile
418
star
15

devops-project-ideas

Real-time project ideas for devops engineers.
279
star
16

terraform-eks

A sample repository to create EKS with VPC on AWS using Terraform.
HCL
261
star
17

Golang-Zero-to-Hero

Learn golang with practical approach. TODO repo - work in progress
234
star
18

k8s-kyverno-argocd

Demo repository to enforce automated k8s cluster security using kyverno policy generator and argocd
187
star
19

go-web-app-devops

Complete DevOps implmentation for a go web app
HTML
165
star
20

argocd-hub-spoke-demo

Deploy resources to multiple kubernetes clusters using Argo CD.
150
star
21

sandbox

Just a sandbox
145
star
22

istio-guide

Repository to learn Istio from Zero. This repository covers the complete Istio fundamentals required for a DevOps Engineer.
133
star
23

k8s-crossplane-argocd

Demonstrate GitOpsification of Cloud Infrastructure using Crossplane and Argo CD
124
star
24

go-web-app

This is a simple website written in Golang. It uses the `net/http` package to serve HTTP requests.
HTML
120
star
25

design_diagrams

flowcharts, workflows and diagrams
114
star
26

cicd-demo-golang

Sample golang application to demonstrate CICD
Go
79
star
27

cis-istio-integration

Integration of F5 CIS Ingress Controller with Istio Service Mesh for Kubernetes and Openshift
Makefile
77
star
28

argo-perf-test

Repo for testing Argo CD Performance(This can be very vague)
58
star
29

MERN-docker-compose

This repo helps you understand how to containerize a mern stack app and deploy using docker-compose
JavaScript
54
star
30

officeassistant

Office Management Assistant During Covid19
JavaScript
40
star
31

dummy-role

A dummy ansible role for demo
HTML
26
star
32

cicd-demo-manifests-repo

Repo for CICD demo app kubernetes manifests
9
star
33

abhishek-shell-example-project

Shell scripting example project
7
star
34

AWS

AWS Lambda functions for Cloud-admins
Python
3
star
35

demo-repo

This repo is created for a demo
2
star
36

keycloak-stuff

Keycloak Installation and Configuration on K8s and OpenShift Container Platforms. Describes on how OpenShiftv4 Idp can be used as broker for openshift-gitops.
Go
1
star