Phần 1: HCL và Hệ sinh thái HashiCorp
HCL (HashiCorp Configuration Language) là ngôn ngữ của cả một hệ sinh thái DevOps, học 1 nhưng áp dụng cho 5 công cụ: Terraform (.tf): Xây dựng Hạ tầng, Packer (.pkr .hcl) Đóng gói image, Nomad (.nomad) Điều phối App, Consul (.hcl) Kết nối mạng, Vault (.hcl) Quản lý bảo mật.
Phần 2: 7 Thành phần Cốt lõi
Block: Khối
loại "tên" {
thuộc_tính = giá_trị
}
Attributes: Thuộc tính được viết dạng key = value
tien_tieu_vat = 50000
tam_trang = "lo_lang"
Data Type: Kiểu dữ liệu
StringNumberBool
Comment: Ghi chú
# Comment
// Comment
/*
Comment nhiều dòng
*/
Conditionals: Điều kiện
điều_kiện ? giá_trị_nếu_đúng : giá_trị_nếu_sai
variable "env" {
default = "dev"
}
resource "aws_instance" "app" {
instance_type = var.env == "prod" ? "t3.large" : "t3.micro"
}
Functión: Hàm
tên_hàm()
Resource dependencies: Tài nguyên phụ thuộc
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
}
resource "aws_instance" "web" {
subnet_id = aws_vpc.main.id
}