Terraform CLI: Những Lệnh Mà DevOps Engineer Phải Nắm Vững
Như bài viết trước đã giới thiệu, Terraform là một trong những nền tảng IaC phổ biến nhất hiện nay. Terraform hoạt động thông qua một tập lệnh duy nhất là terraform, cung cấp nhiều lệnh phục vụ toàn bộ vòng đời quản lý hạ tầng như init, plan, apply, show, destroy, validate, import và workspace.
Trong thực tế, quy trình làm việc với Terraform thường diễn ra theo các bước:
terraform init – Khởi tạo môi trường làm việc
Đây là lệnh đầu tiên phải chạy khi bắt đầu một project Terraform.
terraform init. Lệnh này sẽ thực hiện các tác vụ sau:
terraform plan – Xem trước thay đổi
terraform plan
Terraform sẽ:
Plan: 3 to add, 1 to change, 0 to destroy
Điều quan trọng là plan không thực hiện bất kỳ thay đổi nào. Nó giống như bước review trước khi triển khai. Trong các môi trường DevOps chuyên nghiệp, pipeline CI/CD thường luôn chạy terraform plan trước để đội vận hành kiểm tra kết quả.
terraform apply – Triển khai hạ tầng
terraform apply
Terraform sẽ:
terraform apply -auto-approve
Tùy chọn -auto-approve thường được sử dụng trong các pipeline tự động. Sau khi apply thành công, Terraform sẽ cập nhật file state để ghi nhận trạng thái mới của hạ tầng.
terraform destroy – Xóa tài nguyên
terraform destroy
Lệnh này sẽ:
terraform destroy -target=aws_instance.web
Chỉ xóa một resource cụ thể thay vì toàn bộ môi trường.
Đây là lệnh rất hữu ích khi dọn dẹp môi trường lab hoặc môi trường test.
terraform fmt – Chuẩn hóa mã nguồn
terraform fmt
Terraform sẽ tự động:
Trong nhiều tổ chức, lệnh này được tích hợp trực tiếp vào Git Hooks hoặc CI Pipeline.
terraform show – Xem nội dung State
terraform show
Lệnh này hiển thị nội dung của Terraform State dưới dạng dễ đọc.
Ví dụ:
terraform show terraform.tfstate
Rất hữu ích khi cần kiểm tra nhanh các thuộc tính của resource đã được triển khai.
terraform state – Quản lý State nâng cao
Terraform State là trái tim của toàn bộ hệ thống IaC.
Một số lệnh quan trọng:
Liệt kê tài nguyên:
terraform state list
Xem chi tiết một resource:
terraform state show aws_instance.web
Xóa resource khỏi state:
terraform state rm aws_instance.web
Đổi tên hoặc di chuyển resource:
terraform state mv old_name new_name
Các lệnh này thường được sử dụng trong quá trình refactor hoặc migration hạ tầng.
terraform validate – Kiểm tra cấu hình
terraform validate
Terraform sẽ:
terraform validate
Success! The configuration is valid.
Đây là một trong những bước nên chạy trước khi commit code lên Git.
Quy trình Terraform chuẩn trong thực tế
Một workflow phổ biến của DevOps Engineer thường là:
terraform fmt
terraform validate
terraform init
terraform plan
terraform apply
Khi cần hủy môi trường:
terraform destroy
Nhìn bề ngoài Terraform chỉ là một công cụ CLI đơn giản. Nhưng thực tế, toàn bộ triết lý Infrastructure as Code được xây dựng xoay quanh những lệnh này. Khi kết hợp với Git, CI/CD và Cloud Provider, Terraform trở thành nền tảng tự động hóa hạ tầng mạnh mẽ cho Cloud, Data Center, Kubernetes và cả Network Automation.
Như bài viết trước đã giới thiệu, Terraform là một trong những nền tảng IaC phổ biến nhất hiện nay. Terraform hoạt động thông qua một tập lệnh duy nhất là terraform, cung cấp nhiều lệnh phục vụ toàn bộ vòng đời quản lý hạ tầng như init, plan, apply, show, destroy, validate, import và workspace.
Trong thực tế, quy trình làm việc với Terraform thường diễn ra theo các bước:
- terraform init: Khởi tạo thư mục làm việc và tải các provider cần thiết.
- terraform plan: Tính toán sự khác biệt giữa trạng thái hiện tại và trạng thái mong muốn.
- terraform apply: Triển khai các thay đổi vào môi trường thực tế.
- terraform show: Hiển thị trạng thái hạ tầng được lưu trong state file.
- terraform destroy: Xóa toàn bộ tài nguyên do Terraform quản lý.
terraform init – Khởi tạo môi trường làm việc
Đây là lệnh đầu tiên phải chạy khi bắt đầu một project Terraform.
terraform init. Lệnh này sẽ thực hiện các tác vụ sau:
- Tải các provider plugins được khai báo trong cấu hình
- Khởi tạo backend lưu trữ state
- Tạo file khóa provider (.terraform.lock.hcl)
- Chuẩn bị thư mục làm việc cho các bước tiếp theo
terraform plan – Xem trước thay đổi
terraform plan
Terraform sẽ:
- Đọc toàn bộ file .tf và .tfvars
- So sánh trạng thái thực tế với trạng thái mong muốn
- Tính toán các hành động cần thực hiện
Plan: 3 to add, 1 to change, 0 to destroy
Điều quan trọng là plan không thực hiện bất kỳ thay đổi nào. Nó giống như bước review trước khi triển khai. Trong các môi trường DevOps chuyên nghiệp, pipeline CI/CD thường luôn chạy terraform plan trước để đội vận hành kiểm tra kết quả.
terraform apply – Triển khai hạ tầng
terraform apply
Terraform sẽ:
- Tính toán execution plan
- Hiển thị các thay đổi dự kiến
- Yêu cầu xác nhận
- Thực thi thay đổi trên hệ thống thực tế
terraform apply -auto-approve
Tùy chọn -auto-approve thường được sử dụng trong các pipeline tự động. Sau khi apply thành công, Terraform sẽ cập nhật file state để ghi nhận trạng thái mới của hạ tầng.
terraform destroy – Xóa tài nguyên
terraform destroy
Lệnh này sẽ:
- Đọc Terraform State
- Xác định các tài nguyên cần xóa
- Hiển thị kế hoạch xóa
- Thực hiện việc hủy hạ tầng
terraform destroy -target=aws_instance.web
Chỉ xóa một resource cụ thể thay vì toàn bộ môi trường.
Đây là lệnh rất hữu ích khi dọn dẹp môi trường lab hoặc môi trường test.
terraform fmt – Chuẩn hóa mã nguồn
terraform fmt
Terraform sẽ tự động:
- Căn lề
- Chuẩn hóa khoảng trắng
- Sắp xếp cấu trúc file
Trong nhiều tổ chức, lệnh này được tích hợp trực tiếp vào Git Hooks hoặc CI Pipeline.
terraform show – Xem nội dung State
terraform show
Lệnh này hiển thị nội dung của Terraform State dưới dạng dễ đọc.
Ví dụ:
terraform show terraform.tfstate
Rất hữu ích khi cần kiểm tra nhanh các thuộc tính của resource đã được triển khai.
terraform state – Quản lý State nâng cao
Terraform State là trái tim của toàn bộ hệ thống IaC.
Một số lệnh quan trọng:
Liệt kê tài nguyên:
terraform state list
Xem chi tiết một resource:
terraform state show aws_instance.web
Xóa resource khỏi state:
terraform state rm aws_instance.web
Đổi tên hoặc di chuyển resource:
terraform state mv old_name new_name
Các lệnh này thường được sử dụng trong quá trình refactor hoặc migration hạ tầng.
terraform validate – Kiểm tra cấu hình
terraform validate
Terraform sẽ:
- Kiểm tra cú pháp
- Kiểm tra cấu trúc file .tf
- Phát hiện lỗi cấu hình phổ biến
terraform validate
Success! The configuration is valid.
Đây là một trong những bước nên chạy trước khi commit code lên Git.
Quy trình Terraform chuẩn trong thực tế
Một workflow phổ biến của DevOps Engineer thường là:
terraform fmt
terraform validate
terraform init
terraform plan
terraform apply
Khi cần hủy môi trường:
terraform destroy
Nhìn bề ngoài Terraform chỉ là một công cụ CLI đơn giản. Nhưng thực tế, toàn bộ triết lý Infrastructure as Code được xây dựng xoay quanh những lệnh này. Khi kết hợp với Git, CI/CD và Cloud Provider, Terraform trở thành nền tảng tự động hóa hạ tầng mạnh mẽ cho Cloud, Data Center, Kubernetes và cả Network Automation.