Việc quản trị hàng trăm máy ảo trên Linux sẽ trở nên bất khả thi nếu thiếu đi sự hỗ trợ của Terraform để tự động hóa toàn bộ quy trình khởi tạo và cấu hình hạ tầng. Những hướng dẫn trong bài viết này được mình đúc kết từ quá trình trực tiếp triển khai các file cấu hình .tf để thiết lập hệ thống thực tế, giúp loại bỏ hoàn toàn các sai sót thủ công thường gặp. Hãy cùng mình tìm hểu chi tiết vào cách vận hành Terraform trên Linux để bạn có thể làm chủ hạ tầng chỉ thông qua một vài dòng code chuẩn xác.
Những điểm chính
Đối với mình, Terraform không chỉ là công cụ quản lý hạ tầng mà còn là nền tảng giúp tự động hóa toàn bộ quá trình triển khai và kiểm soát tài nguyên một cách nhất quán. Để giúp bạn hiểu rõ hơn về Terraform và cách áp dụng trong thực tế, bài viết dưới đây sẽ cung cấp các thông tin gồm:
- Khái niệm: Hiểu rõ Terraform là công cụ Infrastructure as Code mã nguồn mở, giúp bạn định nghĩa và quản lý hạ tầng đám mây dưới dạng code.
- Lợi ích: Nắm được các ưu điểm nổi bật như mô hình hóa hạ tầng qua code, tương thích đa nền tảng và tự động hóa toàn bộ lifecycle, giúp đơn giản hóa quy trình, hạn chế sai sót và dễ dàng kiểm soát thay đổi.
- Cách thức hoạt động: Biết được quy trình làm việc cốt lõi từ viết cấu hình, chuẩn bị môi trường đến triển khai và loại bỏ tài nguyên, giúp bạn áp dụng các lệnh một cách có hệ thống.
- So sánh với Ansible: Phân biệt rõ sự khác nhau giữa Terraform và Ansible, giúp lựa chọn đúng công cụ cho từng giai đoạn trong quy trình DevOps.
- Hướng dẫn sử dụng: Nắm vững các bước cài đặt trên Linux, quy trình làm việc cốt lõi và các lệnh quản lý chất lượng code, giúp bạn bắt đầu sử dụng Terraform một cách tự tin.
- Ví dụ thực hành: Trải nghiệm các bước tạo và loại bỏ tài nguyên thực tế thông qua ví dụ minh họa, giúp củng cố kiến thức và làm quen với các thao tác điều phối hạ tầng cơ bản.
- Câu hỏi thường gặp: Giải đáp các thắc mắc liên quan đến Terraform.
Terraform là gì?
Terraform là công cụ Infrastructure as Code (IaC) mã nguồn mở do HashiCorp phát triển. Công cụ này cho phép bạn định nghĩa, khởi tạo và quản lý toàn bộ cơ sở hạ tầng, từ các dịch vụ đám mây (AWS, Azure, GCP) đến hệ thống on-premise, thông qua các tệp cấu hình dạng khai báo bằng ngôn ngữ HCL.
Thay vì phải thao tác thủ công trên giao diện quản trị web hoặc sử dụng các tập lệnh rời rạc, bạn chỉ cần mô tả trạng thái hạ tầng mong muốn bằng code. Terraform sẽ tự động hóa việc triển khai các tài nguyên như máy chủ, mạng, cơ sở dữ liệu một cách nhất quán, có khả năng tái sử dụng cao và hỗ trợ quản lý phiên bản như một dự án phần mềm thực thụ.

Lợi ích khi sử dụng Terraform
Terraform mang lại nhiều ưu điểm nổi bật trong việc quản lý hạ tầng hiện đại, giúp đơn giản hóa quy trình từ định nghĩa đến vận hành:
- Mô hình hóa hạ tầng qua code: Việc sử dụng mã nguồn để mô tả toàn bộ hạ tầng thay vì thao tác thủ công, từ đó tự động hóa quy trình, hạn chế sai sót và dễ dàng kiểm soát thay đổi.
- Tương thích đa hệ thống: Hoạt động mượt mà trên hàng loạt nền tảng đám mây (AWS, Azure, GCP, OCI) cùng các dịch vụ như Docker, VMware hay Cloudflare vô cùng lý tưởng cho môi trường hybrid/multi-cloud.
- Tự động hóa toàn bộ lifecycle: Xử lý cung cấp, chỉnh sửa và loại bỏ tài nguyên một cách an toàn, bao quát từ yếu tố cơ bản (máy ảo, storage) đến nâng cao (DNS, SaaS).
- Kế hoạch áp dụng trước: Tự động sinh bản dự thảo chi tiết trước khi thực thi, hiển thị rõ ràng tài nguyên sẽ thêm, sửa hoặc xóa.
- Theo dõi trạng thái hạ tầng: Ghi nhận tình trạng hiện tại vào file state, hỗ trợ đồng bộ và giám sát liên tục.
- Dễ dàng tái sử dụng và hợp tác: Module cấu hình hỗ trợ version control qua Git, cho phép chia sẻ và áp dụng lại nhanh chóng giữa các team.

Cách thức hoạt động của Terraform
Terraform vận hành theo quy trình đơn giản, lặp lại qua các lệnh cốt lõi sau:
- Soạn thảo cấu hình: Tạo file .tf sử dụng ngôn ngữ HCL để khai báo trạng thái hạ tầng mong đợi.
- Chuẩn bị môi trường: Thực thi terraform init nhằm tải và cài đặt các provider liên quan.
- Dự thảo thay đổi: Sử dụng terraform plan để kiểm tra trước các cập nhật, thêm mới hoặc xóa bỏ dự kiến.
- Triển khai thực tế: Chạy terraform apply để xây dựng hoặc chỉnh sửa hạ tầng theo kế hoạch.
- Loại bỏ tài nguyên: Áp dụng terraform destroy nhằm dọn sạch toàn bộ hạ tầng đã tạo.

So sánh Terraform với Ansible
Bạn nên phân biệt rõ vai trò của Terraform và Ansible để chọn đúng công cụ cho từng giai đoạn trong quy trình hạ tầng và vận hành.
| Tiêu chí | Terraform | Ansible |
| Trọng tâm chính | Cung cấp và quản lý toàn bộ lifecycle hạ tầng đa nền tảng, theo cách declarative (chỉ định kết quả mong muốn). | Cấu hình hệ thống, triển khai và tự động hóa tác vụ trên máy chủ hiện có. |
| Ứng dụng điển hình | Xây dựng tài nguyên đám mây/on-premise từ đầu, dễ dàng scale multi-cloud. | Sử dụng sau Terraform để tinh chỉnh cấu hình và vận hành server. |
Quan điểm của mình: Trong các dự án hạ tầng thực tế, Terraform phù hợp nhất cho bước nền tảng (network, VM, database, dịch vụ managed), còn Ansible nên được dùng phía sau để chuẩn hóa cấu hình, triển khai ứng dụng và giữ cho trạng thái server sát với mong muốn của đội ngũ vận hành.
Hướng dẫn sử dụng Terraform trên Linux
1. Cài đặt Terraform trên Linux
Terraform không có sẵn trong kho lưu trữ mặc định của Ubuntu. Người dùng cần bổ sung kho chính thức từ HashiCorp để tiến hành cài đặt:
- Bước 1: Cài đặt các gói phụ thuộc
sudo apt-get update && sudo apt-get install -y gnupg software-properties-common- Bước 2: Thêm GPG Key của HashiCorp
wget -O- https://apt.releases.hashicorp.com/gpg | \
gpg --dearmor | \
sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg > /dev/null- Bước 3: Thêm Repository
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] \
https://apt.releases.hashicorp.com $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/hashicorp.list- Bước 4: Cài đặt
sudo apt update
sudo apt-get install terraform- Bước 5: Bạn kiểm tra cài đặt bằng lệnh sau. Kết quả mong đợi hiển thị phiên bản Terraform v1.x.x.
terraform -version2. Quy trình làm việc cốt lõi
Quy trình Terraform dựa trên bốn lệnh chính: Init, Plan, Apply và Destroy. Các lệnh này tạo thành chuỗi hoạt động lặp lại để quản lý hạ tầng:
- Bước 1: Bạn cần chạy lệnh trong thư mục chứa file .tf để tải các plugin provider cần thiết về máy.
terraform init- Bước 2: Lệnh phía dưới sẽ thực hiện kiểm tra thử nghiệm bằng cách so sánh trạng thái hiện tại với code. Terraform hiển thị các hành động dự kiến như tạo mới, sửa đổi hoặc xóa tài nguyên.
terraform planHoặc lưu kế hoạch vào file để sử dụng sau:
terraform plan -out=tfplan- Bước 3: Bạn cần áp dụng lệnh terraform apply thực hiện các thay đổi để xây dựng hạ tầng thực tế và yêu cầu xác nhận bằng cách nhập yes.
terraform applyHoặc áp dụng từ file kế hoạch đã lưu mà không cần xác nhận:
terraform apply tfplan- Bước 4: Bạn có thể áp dụng lệnh destroy để xóa toàn bộ hạ tầng do Terraform quản lý. Người dùng cần cân nhắc kỹ trước khi thực thi.
terraform destroy3. Các lệnh quản lý chất lượng Code
Bạn có thể định dạng code thông qua lệnh terraform fmt. Lệnh này sẽ tự động sắp xếp code HCL theo chuẩn định dạng, bao gồm thụt lề và khoảng cách:
terraform fmt -recursiveKiểm tra cú pháp thông qua lệnh terraform validate giúp xác minh tính hợp lệ về cú pháp và logic cơ bản của code. Để thực hiện, bạn sử dụng lệnh sau:
terraform validate4. Quản lý State
Terraform lưu trạng thái hạ tầng trong file terraform.tfstate. Người dùng có thể thao tác thủ công với file này khi cần thiết:
| Lệnh | Chức năng |
| terraform state list | Liệt kê tất cả tài nguyên đang được quản lý. |
| terraform state show | Hiển thị chi tiết thuộc tính của tài nguyên cụ thể. |
| terraform state rm | Ngừng quản lý tài nguyên mà không xóa thực tế. |
Ví dụ thực hành Terraform
Sau đây, bạn cần thực hành tạo một file local. Để kiểm tra Terraform cục bộ, bạn tạo file main.tf với nội dung sau:
resource "local_file" "example" {
content = "Xin chao, toi la Terraform!"
filename = "${path.module}/hello.txt"
}Bạn cần thực thi các lệnh theo thứ tự. File hello.txt sẽ được tạo sau khi apply và xóa sau destroy:
terraform init
terraform applyCuối cùng, bạn cần kiểm tra nội dung file bằng lệnh cat hello.txt. Sau đó bạn chạy terraform destroy để dọn dẹp.





Câu hỏi thường gặp
Terraform AWS là gì?
Terraform AWS đề cập đến provider chính thức cho AWS trong Terraform, cho phép định nghĩa và quản lý tài nguyên AWS như EC2, S3, VPC qua code HCL.
Terraform.io là trang chính thức?
Terraform.io là website chính thức của HashiCorp dành cho Terraform, cung cấp tài liệu, hướng dẫn, registry module và thông tin cập nhật.
Làm thế nào để học Terraform?
Học Terraform qua tài liệu chính thức trên terraform.io, các khóa miễn phí trên HashiCorp Learn hoặc thực hành với lab trên Katacoda/Playground. Bắt đầu bằng cài đặt và ví dụ cơ bản local file.
Terraform provider hoạt động ra sao?
Provider là plugin kết nối Terraform với nền tảng cụ thể (như AWS, Azure), được tải qua terraform init và khai báo trong code để quản lý tài nguyên.
Có công cụ Terraform online không?
Terraform hỗ trợ chạy online qua HashiCorp Playground hoặc Terraform Cloud miễn phí, cho phép viết code và apply mà không cần cài đặt local.
Terraform Registry dùng để gì?
Terraform Registry là kho lưu trữ chính thức trên registry.terraform.io chứa provider, module và data source chia sẻ, giúp tái sử dụng code nhanh chóng.
Cách update Terraform như thế nào?
Update Terraform bằng cách tải phiên bản mới từ HashiCorp releases, cài lại qua package manager (apt/yum) hoặc binary, sau đó chạy terraform init -upgrade. Luôn backup state trước.
Terraform Cloud có lợi ích gì?
Terraform Cloud là nền tảng SaaS của HashiCorp hỗ trợ chạy workflow remote, quản lý state an toàn, collaboration team và tích hợp VCS như GitHub, miễn phí cho cá nhân.
Terraform nổi lên như giải pháp Infrastructure as Code hàng đầu, giúp doanh nghiệp và developer tự động hóa hạ tầng đám mây một cách hiệu quả, nhất quán. Việc áp dụng Terraform không chỉ giảm thiểu lỗi thủ công mà còn hỗ trợ scale linh hoạt trên đa nền tảng. Hãy bắt đầu hành trình với Terraform ngay hôm nay để tối ưu hóa quy trình DevOps của bạn.




