Terraform là gì?

  • Terra là gì? Là vùng đất, lãnh thổ rộng lớn

→ trong tiểu thuyết 🥺 khoa học tưởng tượng 🥺, 🥺 khoa học viễn tưởng 🥺 (science fiction) có nghĩa là trái đất của chúng ta

  • Form là gì? Là biểu mẫu thấy ngừ ta hay dịch vậy á, tui thì nói dài dòng hơn 1 chút là 🥳 mẫu thông tin 🥳
  • Vậy kết hợp lại Terraform có nghĩa là gì? Là mẫu thông tin để điền cái này cái kia vào roài áp dụng cho cả trái đất lun đúng hem? 😏😏😏

→ 🤣 đúng òi 🤣 đây có thể là ý tưởng để đặt tên cho công cụ Terraform của công ty HashiCorp

  • 😂 Suy diễn quá rùi đó ông 😂→ xem 😆 bên tây ngừ ta nói nè 😆

  • Hình này là biến đổi 3 hành tinh (planet) ở dạng (form) có đất, cát (terra) để con người sống được nè


  • Nói 1 cách đơn giản là: khi bạn muốn cài đặt, cấu hình các dịch vụ cloud của Amazon AWS, Google Cloud Platform, Microsoft Azure…

→  thay vì rà chuột | rê chuột, nhấn chuột trái, chuột phải, gõ gõ trên bàn phím vài chữ để nhập thông tin nào đó

→ giờ bỏ tất cả các giá trị đó vào 1 file →  để Terraform biết → roài sau đó tất cả công việc chỉ gói gọn trong 4 lệnh


  • Do thuộc phần cài đặt, cấu hình nên Terraform được phân loại là Infrastructure as code – IAC

  • Terraform chắc nhắm 😆 không cạnh tranh lại 😆 với hướng đi truyền thống của Ansible, Puppet, SaltStack, Chef… vừa on-premise + cloud

→ họ chỉ móc vào các hàm API được các ông cloud cung cấp để làm tự động công việc đó

  • Các Cloud mà Terraform móc vào họ gọi là provider như:
  • Amazon AWS
  • Alibaba Cloud
  • Google Cloud Platform
  • Oracle Cloud Infrastructure

  • File cấu hình của terraform – terraform configuration

→ xài ở dạng ngôn ngữ khai báo – declarative language

→ cứ key = value 😁 điền đầy đủ 😁 là xong các bạn ạ

Terraform Language Documentation


1. Deploy and Monitor Applications

Use Application Load Balancers for Blue-Green and Canary Deployments
Host a Static Website with S3 and Cloudflare
Deploy, Manage, and Scale an Application on Heroku
Deploy an Application to a DigitalOcean Droplet
Deploy Federated Multi-Cloud Kubernetes Clusters
Deploy Applications with Cloud Development Kit – CDK for Terraform
Automate Monitoring with the Terraform Datadog Provider
Create Preview Environments with Terraform, GitHub Actions, and Vercel

Deploy and Monitor Applications

2. Manage AWS Services

Manage AWS Auto Scaling Groups
Manage AWS Accounts Using Control Tower Account Factory for Terraform
Manage New AWS Resources with the Cloud Control Provider
Upgrade RDS Major Version
Use AssumeRole to Provision AWS Resources Across Accounts
Configure Default Tags for AWS Resources
Create IAM Policies
Deploy Serverless Applications with AWS Lambda and API Gateway
Use Application Load Balancers for Blue-Green and Canary Deployments
Host a Static Website with S3 and Cloudflare
Manage AWS RDS Instances
Create Preview Environments with Terraform, GitHub Actions, and Vercel

Manage AWS Services

3. Manage Azure Services

Deploy the Microsoft Cloud Adoption Framework Enterprise-Scale Module
Manage Azure Active Directory (Azure AD) Users and Groups
Deploy Federated Multi-Cloud Kubernetes Clusters

Manage Azure Services

4. IT/SaaS Providers

Manage Your Google Workspace Organization
Manage GitHub Users, Teams, and Repository Permissions

IT/SaaS Providers

5. Manage Kubernetes with Terraform

Provision an Elastic Kubernetes Service – EKS Cluster (AWS)
Provision an Azure Kubernetes Service – AKS Cluster (Azure)
Provision a Google Kubernetes Engine – GKE Cluster (Google Cloud)
Manage Kubernetes Resources via Terraform
Deploy Consul and Vault on Kubernetes with Run Triggers
Automate Terraform Cloud Workflows
Deploy Infrastructure with the Terraform Cloud Operator for Kubernetes
Deploy Applications with the Helm Provider
Manage Kubernetes Custom Resources
Deploy Federated Multi-Cloud Kubernetes Clusters

Manage Kubernetes with Terraform

6. Manage Virtual Machine Images

Provision Infrastructure with Packer
Manage VMs and Snapshots on vSphere

Manage Virtual Machine Images

7. Network Applications with Terraform

Network Infrastructure Automation with Consul-Terraform-Sync Intro
Consul-Terraform-Sync Run Modes and Status Inspection
Use Terraform to Register External Services
Use Application Load Balancers for Blue-Green and Canary Deployments
Deploy Federated Multi-Cloud Kubernetes Clusters

Network Applications with Terraform

8. Interact with Security tools

Codify Management of Vault Using Terraform
Codify Management of Vault Enterprise Using Terraform
AppRole With Terraform & Chef
Deploy Consul and Vault on Kubernetes with Run Triggers
Inject Secrets into Terraform Using the Vault Provider
Terraform Cloud Secrets Engine
Configure self-hosted Boundary using Terraform
Target-Aware Workers
OpenID Connect – OIDC Authentication

Interact with Security tools

  • Cũng như Ansible có Ansible Galaxy là 1 kho (repository) chứa các Ansible roles mẫu bà con đã làm sẵn ok hết zà có 😘 tình thương mến thương 😘 chia sẻ cho mọi ngừ.

Ansible Galaxy

→ Terraform cũng có 1 nơi để mọi ngừ 😆 đăng kí sổ hộ khẩu – registry 😆 cho mình

→ các file cấu hình mẫu này sẽ 😍 tiết kiệm được khá nhiều thời gian 😍 cho 😅 cuộc đời mày mò, mò mẫm kĩ thuật 😅 của bạn á 😂 make your life easier 😂

Terraform Providers

  • Bên cạnh bản miễn phí cho bà con, Terraform có bản bản lấy tiền chạy trên cloud hoặc tự quản lí với nhiều chức năng cao cấp hơn → như Ansible Tower á
  • Team management
  • Sentinel policy as code
  • Run tasks
  • Additional concurrency
  • Drift detection
  • Single Sign-On (SSO)
  • Audit logs
  • Self-hosted agents
  • Custom concurrency

Terraform Cloud Pricing