Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Các lệnh Terraform

    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 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ý.
    Khi bắt đầu học Infrastructure as Code (IaC), nhiều người nghĩ Terraform chỉ có vài lệnh đơn giản như init, plan và apply. Tuy nhiên, trong môi trường production, việc hiểu đầy đủ các lệnh CLI của Terraform là rất quan trọng để quản lý vòng đời hạ tầng một cách an toàn và hiệu quả.

    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
    Nếu chưa chạy terraform init, bạn sẽ không thể thực hiện plan hoặc apply.

    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
    Ví dụ:
    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ế
    Ví dụ:
    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
    Ví dụ:
    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
    Giúp toàn bộ team duy trì cùng một coding style.
    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
    Ví dụ:
    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.​
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X