[Terraform] Terraform Cơ bản

[Terraform] Terraform Cơ bản


1. Terraform là gì?

Terraform là công cụ quản lý cơ sở hạ tầng bằng mã (Infrastructure as code - IaC).

Terraform giúp cho việc triển khai, thay đổi, quản lý thay đổi của cơ sở hạ tầng hiệu quả và an toàn.

2. Terraform workflow

Hình ảnh lấy từ: https://gap.gjensidige.io/docs/iac/terraform

  • Khởi tạo

    • Xây dựng cơ sở hạ tầng bằng code
  • Plan

    • Kiểm tra các thay đổi của cơ sở hạ tầng trước khi triển khai lên cloud
  • Apply

    • Tạo các cơ sở hạ tầng trên cloud
  • Destroy

    • Xoá các cơ sở hạ tầng đã tạo trên cloud

3. Một số command cơ bản

  • Tải và cài đặt và khởi tạo provider, các module

      terraform init
    
  • Format và validate syntax của cấu hình hiên tại

      terraform fmt
      terraform validate
    
  • Hiển thị những thay đổi của cấu hình hiện tại, cũng như download những module được define trong code

      terrafrom plan
    
  • Tạo cơ sở hạ tầng trên cloud

      terraform apply
    
  • Khi đã triển khai xong, terraform sẽ viết dữ liệu của cấu hình vào file có tên là terraform.tfstate , dùng command phía dưới để xem thông tin cấu hình cơ sở hạ tầng sau khi triền khai

      terraform show
    
  • Hiển thị danh sách resource có trong state

      terraform state list
    
  • Xoá những resource đã triển khai

      terraform destroy
    

4. Tổ chức thư mục Terraform

  • Chia thành nhiều môi trường

    Hình ảnh lấy từ nguồn: https://developer.hashicorp.com/terraform/language/style#multiple-environments

  • .gitignore:

    • terraform.tfstate , terraform.tfstate.*

    • .terraform.tfstate.lock.info : terraform sẽ tạo và xoá file này một cách tự động khi chạy command terraform apply

    • .terraform : Terraform sẽ download provider và module khi chạy command terraform plan

    • .tfvars : file lưu những thư mục nhạy cảm

4. Tài liệu tham khảo