Quản lý vContainer với Terraform
Để quản lý vContainer với Terraform, bạn cần làm các bước sau đây:
Cài đặt Terraform CLI
Để có thể quản lý vContainer với Terraform bạn cần cài đặt Terraform CLI theo hướng dẫn tại đây
Cấp quyền IAM cho việc sử dụng
Để có thể thực hiện quản lý vContainer với Terraform bạn cần tạo Service account từ Root account trên trang chủ IAM (xem hướng dẫn cách tạo Service account và sử dụng IAM tại đây), trong trường hợp này lấy ví dụ cho việc bạn muốn tạo Kubernetes Cluster (K8S) với Terraform cần có các quyền (Policy) sau:
CreateCluster
GetCluster (specify by all resources)
ListClusterSecGroupDefault (specify by all resources)
GetClusterConfig (specify by all resources)
hoặc bạn có thể cấp quyền vServerFullAccess (nên có quyền vServerReadOnlyAccess để get thông tin resource sau khi tạo xong). Tham khảo thêm về cách phân quyền cho từng Resource, Action tương ứng tại {Trang phân quyền IAM}.
Ghi chú: Mỗi hành động quản lý tài nguyên khác nhau sẽ yêu cầu các quyền khác nhau, vì thế điều cần thiết là phải thiết lập một bộ phân quyền hợp lý phù hợp với nhu cầu kinh doanh của bạn.
Tạo thư mục chứa terraform file và tải example file từ VNG Cloud repo
Sau khi cấp quyền IAM cho account cần sử dụng Terraform, bạn cần tạo một thư mục chứa file Terraform để cài đặt các thông số trên đó, bạn có thể tải file Example từ VNG Cloud repo của chúng tôi tại đây
Cài đặt thông số trong Terraform file
Sau khi tải thư mục Example về máy, mở file variable.tf (theo đường dẫn /examples/ variable.tf), sau đó thay đổi các thông tin cần thiết như sau: Client_id: Lấy tại trang chủ IAM/ Service account/ Tab Security credentials
Client_secret: Lấy khi khởi tạo Service account tại trang chủ IAM hoặc có thể reset lại tại trang IAM/ Service account/ Tab Security credentials
Kiểm tra lại thông tin file main.tf (theo đường dẫn examples/main.tf), trường hợp này bạn cần xóa đi các dòng bên dưới:
module "vserver" {source = "./modules/vng-cloud-vserver" }
module "vlb" { source = "./modules/vng-cloud-vlb" }
Chỉ để lại:
module "k8s" { source = "./modules/vng-cloud-k8s" }
Sau đó truy cập vào thư mục vng-cloud-vserver/ examples/ modules/ vng-cloud-k8s/, và mở file variable.tf:
project_id: thông tin project của bạn, bạn có thể lấy ở {Tab Limit} trên vServer Portal, Ví dụ: pro-462803f3-6858-466f-bf05-df2b33faa360:
image_id: hệ điều hành để khởi tạo vServer ví dụ như: img-b5bf635e-0456-4765-b493-31d5fcfc05aa (1_Ubuntu-22.04x64) ... hiện tại chúng tôi để mặc định image của K8S là Fedora (Lưu ý: Thông số này không thể sửa)
flavor_id: cấu hình vServer mà bạn sẽ khởi tạo ví dụ: flav-e2028a81-cc75-47e4-8af1-9eef2f857f84 (s-general-2x4) ,... bạn có thể xem danh sách khi tạo vServer trên Portal/ {Tab Flavors}.
volume_type_name: chỉ định IOPS cho root disk và data disk, ví dụ: SSD-3000, SSD-200, SSD-400, bạn có thể xem danh sách Volume Type trên vServer Portal/ {Tab Volume Type}
root_disk_size: chỉ định dung lượng ổ root disk, ví dụ: 20
data_disk_size: chỉ định dung lượng ổ root disk, ví dụ: 50
network_id: chỉ định network id mà vServer sẽ được tạo trên đó, bạn có thể lấy từ tab VPC, nếu chưa khởi tạo bất cứ network nào bạn có thể xem hướng dẫn {Trang tạo VPC}:
subnet_id: chỉ định subnet id mà vServer sẽ được tạo trên đó, bạn có thể lấy từ {Tab VPC}, nếu chưa khởi tạo bất cứ subnet nào bạn có thể xem hướng dẫn tại {Trang tạo subnet}:
ssh_key_id: chỉ định ssh key sẽ được inject vào vServer, bạn có thể lấy ở {Tab SSH Keys}, nếu chưa khởi tạo bất kì ssh key nào bạn có thể xem tại {Trang tạo SSH key}:
security_group_id_list: chỉ định danh sách security group id cần gắn vào vServer, bạn có thể lấy ở {Tab Security Groups}, nếu cần tạo thêm security group bạn có thể xem tại {Trang tạo Security Group}:
Kiểm tra lại thông tin file main.tf (theo đường dẫn terraform-provider-vngcloud/examples/modules/vng-cloud-k8s/main.tf), trong file chúng tôi để sẵn một số câu lệnh: Create K8S, Create Cluster Node Group, Change Cluster for SecGroup, Attach Load Balancer for K8s..., trường hợp này để Tạo mới K8S bạn chỉ cần để lại resource Create K8S theo hướng dẫn bên dưới:
Khởi chạy Terraform command
Sau khi hoàn tất các thông tin trên, để terraform khởi tạo và tải VNG Cloud provider về đồng thời thiết lập các thông tin cần thiết chạy lệnh bên dưới, lưu ý khi chạy cần đứng tại thư mục terraform-provider-vngcloud/ examples/:
Hệ thống sẽ trả ra kết quả:
Sau đó, bạn để xem những thay đổi sẽ được áp dụng trên những resource mà terraform đang quản lý bạn có thể chạy:
Cuối cùng bạn chọn chạy dòng lệnh:
và chọn YES để thực hiện việc khởi tạo vServer thông qua Terraform
Kiểm tra Container vừa tạo trên giao diện VNG Cloud Portal
Sau khi khởi tạo thành công Terraform, bạn có thể lên Portal để xem thông tin Container vừa tạo:
Last updated