Danh sách bài viết trong series Terraform Associate (003)
- Bài 0: Giới Thiệu Series Và Tổng Quan Về Chứng Chỉ Terraform Associate (003)
- Bài 1: Terraform Là Gì? Tổng Quan Và Vai Trò Trong IaC
- Bài 2: Cài Đặt Terraform Trên Các Hệ Điều Hành
- Bài 3: Terraform Workflow: Init, Plan, Apply, Destroy
- Bải 4: Terraform CLI Nâng Cao: Lệnh Taint, Import, Refresh
- Bài 5: Quản Lý Provider Trong Terraform
- Bài 6: Quản Lý Resource Trong Terraform
- Bài 7: Sử Dụng Biến (Variables) Trong Terraform
- Bài 8: Sử Dụng Output Trong Terraform
- Bài 9: Hiểu Terraform State Quản Lý Trạng Thái Hạ Tầng
- Bài 10: Sử Dụng Remote State Với Backend Như S3 Trong Terraform
- Bài 11: Terraform Workspace Quản Lý Nhiều Môi Trường
- Bài 12: Terraform Module: Mô-đun Hóa Cấu Hình
- Bài 13: Terraform Data Sources Truy Vấn Thông Tin Hạ Tầng
- Bài 14: Quản Lý Vòng Đời Tài Nguyên Với Terraform
- Bài 15: Tự Động Hóa Và Tích Hợp CI/CD Với Terraform
- Bài 16: Xử Lý Lỗi Và Debug Trong Terraform
- Bài 17: Tối Ưu Hóa Hiệu Suất Với Terraform
- Bài 18: Bảo Mật Cấu Hình Terraform
- Bài 19: Triển Khai Hạ Tầng Đa Vùng Với Terraform
- Bài 20: Triển Khai Hạ Tầng Serverless Với Terraform
- Bài 21: Triển Khai Hạ Tầng Container Với Terraform (ECS, EKS)
- Bài 22: Triển Khai Hạ Tầng Multi-Cloud Với Terraform
- Bài 23: Tổng Kết Series Và Chuẩn Bị Cho Kỳ Thi Terraform Associate (003)
Terraform Workflow Là Gì?

Terraform Workflow là quy trình làm việc cơ bản để quản lý hạ tầng dưới dạng mã (IaC) với các lệnh chính: terraform init
, terraform plan
, terraform apply
, và terraform destroy
. Đây là nền tảng quan trọng trong việc triển khai và quản lý tài nguyên, được kiểm tra trong kỳ thi Terraform Associate (003). Workflow giúp bạn khởi tạo môi trường, kiểm tra cấu hình, áp dụng thay đổi, và dọn dẹp tài nguyên một cách an toàn và nhất quán.
Chi Tiết Các Bước Trong Terraform Workflow
Bước 1: Terraform Init
- Mô tả: Lệnh
terraform init
khởi tạo thư mục làm việc, tải các provider cần thiết, và thiết lập backend (nếu có). - Input: Chạy lệnh trong thư mục chứa file
.tf
(VD:main.tf
).terraform init
-
Output:
Initializing the backend... Initializing provider plugins... - Finding hashicorp/local versions matching "2.5.1"... - Installing hashicorp/local v2.5.1... - Installed hashicorp/local v2.5.1 (signed by HashiCorp) Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure.
- Ý nghĩa: Thông báo tải provider (
hashicorp/local
) và xác nhận khởi tạo thành công.
Bước 2: Terraform Plan
- Mô tả: Lệnh
terraform plan
tạo một kế hoạch triển khai, hiển thị các thay đổi sẽ được áp dụng mà không thực sự tạo tài nguyên. - Input: Chạy lệnh sau khi
init
.terraform plan
-
Output (giả sử file
main.tf
tạo một file cục bộ):Terraform will perform the following actions: # local_file.hello will be created + resource "local_file" "hello" { + content = "Hello, Terraform!" + filename = "hello.txt" + id = (known after apply) } Plan: 1 to add, 0 to change, 0 to destroy. Changes to Outputs: + hello_file_content = (known after apply) Note: You didn't use the -out option to save this plan, so Terraform can't guarantee to take exactly these actions if you run "terraform apply" now.
- Ý nghĩa: Hiển thị kế hoạch tạo 1 resource (
local_file
), không thay đổi hoặc xóa. Output còn phụ thuộc vào-out
(không dùng trong ví dụ).
Bước 3: Terraform Apply
- Mô tả: Lệnh
terraform apply
áp dụng các thay đổi được lên kế hoạch, tạo hoặc cập nhật tài nguyên. - Input: Chạy lệnh để xác nhận áp dụng (thêm
-auto-approve
để tự động xác nhận).terraform apply -auto-approve
-
Output:
local_file.hello: Creating... local_file.hello: Creation complete after 0s [id=abc123] Apply complete! Resources: 1 added, 0 changed, 0 destroyed. Outputs: hello_file_content = "Hello, Terraform!"
- Ý nghĩa: Tạo file
hello.txt
với nội dung “Hello, Terraform!”. Output hiển thị tài nguyên đã thêm thành công.
Bước 4: Terraform Destroy
- Mô tả: Lệnh
terraform destroy
xóa tất cả tài nguyên được quản lý bởi Terraform trong thư mục làm việc. - Input: Chạy lệnh để xác nhận xóa (thêm
-auto-approve
để tự động xác nhận).terraform destroy -auto-approve
-
Output:
local_file.hello: Destroying... [id=abc123] local_file.hello: Destruction complete after 0s Destroy complete! Resources: 0 added, 0 changed, 1 destroyed.
- Ý nghĩa: Xóa file
hello.txt
, không còn tài nguyên nào được quản lý.
Ví Dụ Thực Tế Với Terraform Workflow
-
File
main.tf
:terraform { required_providers { local = { source = "hashicorp/local" version = "2.5.1" } } } resource "local_file" "hello" { content = "Hello, Terraform!" filename = "hello.txt" } output "hello_file_content" { value = local_file.hello.content }
- Quy trình:
terraform init
: Khởi tạo và tải provider.terraform plan
: Kiểm tra kế hoạch tạo file.terraform apply
: Tạo filehello.txt
.terraform destroy
: Xóa filehello.txt
.
Lưu Ý Quan Trọng Khi Sử Dụng Workflow
- Thứ tự thực hiện: Luôn chạy
terraform init
trước khi các lệnh khác để tránh lỗi provider. - Sao lưu state: File
terraform.tfstate
chứa trạng thái tài nguyên, nên sao lưu trước khidestroy
. - Xác nhận thủ công: Tránh dùng
-auto-approve
trong môi trường sản xuất để kiểm tra kỹ thay đổi. - Kiểm tra lỗi: Nếu
plan
hoặcapply
báo lỗi (VD: provider không tìm thấy), kiểm tra file cấu hình và lệnhinit
.
Liên Hệ Với Chứng Chỉ Terraform Associate (003)
Kỳ thi Terraform Associate (003) kiểm tra hiểu biết về workflow. Bạn cần nắm:
- Câu hỏi mẫu:
- “Lệnh nào dùng để xem kế hoạch thay đổi mà không áp dụng?”
Đáp án:terraform plan
. - “Output của
terraform apply
bao gồm gì?”
Đáp án: Số tài nguyên thêm/chỉnh sửa/xóa, cùng với output (nếu có).
- “Lệnh nào dùng để xem kế hoạch thay đổi mà không áp dụng?”
- Thực hành: Kỳ thi có thể yêu cầu nhận diện output hoặc dự đoán kết quả của các lệnh.
Kết Luận
Terraform Workflow với các lệnh init
, plan
, apply
, và destroy
là nền tảng để quản lý hạ tầng. Hiểu rõ từng bước, đầu vào, đầu ra, và thực hành với ví dụ thực tế là chìa khóa để thi đỗ Terraform Associate (003). Ở bài tiếp theo, chúng ta sẽ khám phá các lệnh CLI nâng cao như taint
và import
.