Sau khi hoàn tất Part 5, chúng ta đã có một file main.tf “all-in-one” giúp deploy web ASP.NET Core và SQL Server lên Azure Container Instance (ACI).
Ở Part 6, chúng ta sẽ refactor lại project để chuẩn hóa theo mô hình DevOps production-ready:
- Tách file Terraform thành nhiều phần dễ bảo trì (versions.tf, provider.tf, variables.tf, outputs.tf...)
- Thêm remote backend lưu state trong Azure Storage
- Chuẩn hóa biến (variables.tf) và đầu ra (outputs.tf)
- Hỗ trợ nhiều môi trường (dev, staging, production) bằng .tfvars + workspace
Cấu trúc thư mục
tf-aci-fullstack/
├─ versions.tf # Định nghĩa version Terraform & provider
├─ provider.tf # Cấu hình provider (azurerm, kubernetes nếu cần)
├─ backend.tf # Remote state (Azure Storage)
├─ variables.tf # Input variables
├─ locals.tf # Đặt quy ước prefix, tags, định danh
├─ main.tf # Resource chính (ACI, ACR, VNet,...)
├─ outputs.tf # Output URL, login server,...
├─ dev.tfvars # Môi trường Dev
├─ stg.tfvars # Môi trường Staging
└─ prod.tfvars # Môi trường Production
File versions.tf
Là một file cấu hình Terraform được sử dụng để chỉ định giới hạn phiên bản của Terraform và các nhà cung cấp (provider) mà dự án của bạn yêu cầu. Điều này đảm bảo rằng dự án của bạn luôn hoạt động với các phiên bản Terraform tương thích, tránh các xung đột do phiên bản hoặc lỗi phát sinh khi sử dụng tính năng của nhà cung cấp trong các phiên bản cũ.terraform {
required_version = ">= 1.4.0"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 3.100"
}
}
}
File provider.tf
Chỉ định provider chính azurerm. Sau này có thể mở rộng thêm kubernetes hoặc helm.provider "azurerm" {
features {}
}
Nhận xét
Đăng nhận xét