0

[Terraform] Xử lý xung đột giữa Cloud và Terraform state

Vấn đề

Bài trước chúng ta đã cùng nhau tìm hiểu về Terraform backend được dùng để xử lý xung đột khi có nhiều người cùng xây dựng cơ sở hạ tầng.

Nhưng có một vấn đề nữa, nếu trong quá trình làm việc, có ai đó vào console chỉnh lại các thông số của cơ sở hạ tầng thì phải làm sao để đảm bảo tính nhất quán của cơ sở hạ tầng?

Terraform đã đưa ra 1 giải pháp đó là sử dụng flag -refresh-only , được sử dụng để tuỳ chỉnh lại Terraform state cho khớp với hệ thống hiện tại trên cloud.

image.png

Practices

Ta sử dụng tiếp bài Lab 01 để thực tập việc sử dụng flag -refresh-only.

Ta lần lượt chạy các lệnh sau để khởi tạo các resource trên cloud

terraform init
terraform plan
terraform apply

Sau tầm vài phút thì cơ sơ hạ tầng đã được triền khai trên cloud, truy cập vào IP của EC2 để kiểm tra

image.png

Thực thi dòng lệnh sau:

terraform plan -refresh-only

Kết quả trả về ghi nhận không có sự khác nhau giữa Terraform state và cơ sở hạ tầng trên cloud

image.png

Tiếp theo ta sẽ thực hiện việc thay đổi trên Security group bằng cách xoá 1 Type ssh

Sau đó chạy lại command sau:

terraform plan -refresh-only

Lúc này Terraform xác định được sự khác nhau giữa Terraform state và cơ sở hạ tầng trên cloud

image.png

Lưu ý lúc này Terraform state vẫn chưa thay đổi, ta chạy lệnh terraform apply để cập nhật lại Terraform state

terraform apply -refresh-only

image.png

Kết luận

Để xử lý sự khác biệt giữa Terraform state và cơ sở hạ tầng thự tế trên cloud ta sử dụng flag -refresh-only cho 2 lệnh terraform planterraform apply .


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.