Terraform Course

Terraform Course: Bulud resurslarını kod vasitəsilə idarə etməyi öyrən! İnfrastrukturun avtomatlaşdırılması, konfiqurasiya və idarəetmə bacarıqları əldə et, real layihələrlə təcrübə qazan. Yeni səviyyəyə keç!

Kurs Haqqında

First Month:

Week 1:

Lesson 1: Introduction to Infrastructure as Code (IaC) & Terraform

·         Topics:

o    What is Infrastructure as Code (IaC)?

o    Declarative vs. Imperative approaches.

o    Introduction to Terraform and its place in the ecosystem.

o    Setting up your environment: Installing Terraform and a code editor (VS Code).

o    Configuring credentials for a cloud provider (e.g., AWS, Azure, or GCP).

Lesson 2: HCL Syntax & Configuration Basics

·         Topics:

o    Deep dive into HashiCorp Configuration Language (HCL).

o    Providers: Specifying the cloud or service to manage.

o    Resources: The fundamental building blocks of your infrastructure.

o    Input Variables: Making your code reusable (variable blocks, .tfvars files, command-line flags).

o    Output Values: Exporting data from your configuration for use elsewhere.

Week 2:

Lesson 3: Advanced Expressions, Dependencies & Data Sources

·         Topics:

o    Data Sources: Fetching information about existing resources.

o    Dependencies: Understanding implicit and explicit (depends_on) resource ordering.

o    Meta-Arguments: Using count and for_each to create multiple resources dynamically.

o    Expressions & Functions: Using built-in functions for logic and data manipulation.

Lesson 4: Mastering Terraform State

·         Topics:

o    What is Terraform state and why is it essential?

o    The dangers of local state files in teams.

o    Remote Backends: Configuring remote storage for state files (e.g., AWS S3, Azure Blob Storage).

o    State Locking: Preventing conflicts during concurrent runs.

o    State manipulation commands: terraform state list, terraform state show, terraform state mv (with caution!).

Week 3:

Lesson 5: Building Reusable Infrastructure with Modules

·         Topics:

o    The DRY (Don't Repeat Yourself) principle.

o    What are Terraform Modules?

o    Creating and using a local module.

o    Module inputs (variables) and outputs.

o    Using public modules from the Terraform Registry.

Lesson 6: Provisioners, Lifecycle Rules & Workspaces

·         Topics:

o    Provisioners (local-exec, remote-exec): When and why you should avoid them (Immutable Infrastructure).

o    Resource Lifecycle Rules: create_before_destroy, prevent_destroy, ignore_changes.

o    Workspaces: A simple way to manage multiple environments with a single configuration.

o    Tainting resources to force recreation (terraform taint).

Week 4:

Lesson 7: Terraform in Teams & CI/CD Pipelines

·         Topics:

o    Best practices for structuring a repository.

o    Integrating Terraform with Git for version control.

o    Automating the workflow: terraform fmt, validate, plan, and apply.

o    Introduction to CI/CD with services like GitHub Actions or GitLab CI.

o    Introduction to Terraform Cloud/Enterprise for advanced collaboration and governance.

Lesson 8: Final Project & Course Review

·         Topics:

o    Comprehensive review of all concepts covered in the course.

o    Open Q&A session.

o    Discussion of next steps and further learning

o    Project: Using the module you created, deploy a complete two-tier infrastructure: a load balancer, an auto-scaling group of web servers in public subnets, and a managed database in a private subnet.

Month 2:

Week 5: Configuration Management with Ansible

Lesson 9: Ansible Fundamentals

·         Topics:

o    What is Configuration Management?

o    Terraform vs. Ansible. Ansible's agentless architecture. Inventory, ad-hoc commands, and writing your first playbook.

o    Dynamic Inventory (using Terraform output). Using Jinja2 templates for dynamic configuration files. Managing services and using handlers.

Lesson 10: Reusable Code with Ansible Roles

·         Topics:

o    The standard Ansible Role structure. Converting playbooks into reusable roles.

o    Understanding variable precedence.

Week 6: Secrets Management with Vault

Lesson 11: Ansible Vault & Introduction to HashiCorp Vault

·         Topics:

o    Securing sensitive data with Ansible's built-in ansible-vault.

o    Understanding the need for a dedicated secrets manager.

o    Introduction to HashiCorp Vault architecture.

Lesson 12: Integrating Vault with Terraform

·         Topics:

o    Using Vault's Key/Value secrets engine. Authenticating to Vault.

Week 7: Building the CI/CD Pipeline

Lesson 13: CI/CD for Infrastructure (Terraform Pipeline)

·         Topics:

o    What is CI/CD?

o    Using Gitlab CI/CD to create a pipeline that automatically validates and plans your Terraform code on every pull request.

Lesson 14: Containerization & the Application CI Pipeline

·         Topics:

o    Introduction to Docker.

o    Writing a Dockerfile for a sample web application

Week 8: Final Project Integration

·         Lesson 15-16: The Complete "Push-to-Deploy" Pipeline

o    Topics: The "Continuous Deployment" (CD) stage. Tying everything together.

o    Project: Create a final, end-to-end workflow. A developer pushes application code. The CI/CD pipeline from Lesson 15 builds the Docker image. The pipeline then triggers your Ansible playbook, which pulls the new image onto the servers provisioned by Terraform, retrieving any needed secrets from Vault.

 

Tədris müəllimlərimiz

Təcrübəli müəllimlərimizlə tanış olun!

  • Nərmin Əzizova

    Terraform Course

    Hardan başlamalısan bilmirsən?

    Hardan başlamalı olduğunu bilmirsən?

    Bizimlə birbaşa əlaqə: (+994 10) 234 65 56

    • Adress
    • Cəfər Cabbarlı küç. 609, Bakı / Globus Center

    • © 2014-2025 Orient Academy

    • Social network