1) Terraform Commands
Ngoài các câu lệnh chúng ta hay chạy gồm:
terraform init
terraform plan
terraform apply
thì mình thấy có 1 số câu lệnh nữa.
nêu bạn biết chức năng của các lệnh khác thì hay comment chỉ mình nhé!
terraform validate
Đây là trường hợp nếu terraform của bạn khai báo bị lỗi
terrform fmt
terrform show
Nó sẽ show current state của terraform
terraform provider
terraform provider mirror <path folder>
terraform output
terrform refesh
terraform refesh sẽ được tự độn chạy khi bạn gõ terrform plan or terrform apply
terrform graph
Sau đây mình summary lại:
2) Mutable vs Immutable Infrastructure
Ở trường hợp trên thì terraform phảu detele resource trước khi tạo lại
Vậy nếu bạn muốn create trước khi destroy thì xem tiếp bên dưới.
3) LifeCycle Rule.
3.1) Create Before Destroy
Ở case này thì chúng ta sẽ chỉnh cho terraform create trước destroy sau
và như ảnh bên dưới.
3.2) Prevent Destroy
Chúng ta chặn cho update bất cứ thứ gì
3.3) Ingnored Changes
trong trường hợp bạn change config thì terraform sẽ detect được
Bạn có thể thấy trên ví dụ chúng ta đã ignored việc change tags
nến nếu bạn có change ta mà có config ignore_changes thì change cũng không có tác dụng.
Cuối cùng là bảng tóm tắc
4) Datasource
Như lúc đầu chúng ta sẽ dụng terraform để tạo ra 1 file pet.txt
Giờ chúng ta muốn terraform đọc dữ liệu từ 1 datasource nào đó như: “file, database, api”
Xong rồi lấy data đó để tạo file
nghe nó pro hơn rồi đúng không nào?
5) Meta-Arguments
Phần mình đánh dấu thì bạn sẽ gọi là meta argument
Meta Argument: có thể được sử dụng trong bất cứ block nào của resource, mục đích để thay đổi behavior của resource.
depends_on là thể hiện resource A phụ thuộc vào reource B
lifecycle là như giải thích các phần trên, lăn lên giúp mình!
6) Count
Nhưng vấn đề là khi chúng ta kiểm tra thì chỉ tạo ra 1 file.
file này được create 3 lần nhưng cùng 1 cùng tên file và cùng nội dung.
thế thì bạn phải làm như sau:
Bài toán đặt ra nếu ta tăng nội dụng trong mảng default, xong lại file tăng count thì hơi mất công
Ví dụ: Lần đầu mạng default có 3 gía trị.
KHi bạn terraform apply sẽ có 3 file.
xong bạn xoá 1 giá trị trong mảng sau đó apply thì nó sẽ xoá file tương ứng với giá trị vừa được xoá!
Nếu bạn xoá phần từ đầu tiên của mảng thì phần tử thứ 2 sẽ lên làm phần tử thứ nhất
Nên ta thấy action là destroy xong replace
7) fo_reach
Hoặc nêú variable là type=list(string) thì bên main.tf là for_each = toset(var.xxx)
Đây là bảng so sánh giữ count và each
8) Version Constraints
Ngoài ra thì chúng ta sẽ có nhiều mode để cấu hình version: