Provision dịch vụ Virtual Server với Terraform

Cập nhật lần cuối: 2025/06/30 10:46:58

ĐIỀU KIỆN

  • Cài đặt phiên bản Terraform từ v1.8 trở lên.
  • Cài đặt Go phiên bản từ 1.22 trở lên ( để xây dựng plugin )
  • Có thông tin về API key của tài khoản trên CMC Cloud ( cần báo admin của CMC Cloud active API key)

 

 

CÁC BƯỚC THỰC HIỆN

CMC cung cấp dịch vụ Elastic Cloud Server (ECS), là máy chủ ảo cung cấp tài nguyên điện toán theo yêu cầu, có thể mở rộng, an toàn, cho phép người dùng triển khai linh hoạt các ứng dụng và khối lượng công việc.

 

Dịch vụ ECS hỗ trợ khởi tạo các hệ điều hành phổ biến như Windows Server và các dòng Linux chủ đạo (public image). Khách hàng có thể tạo VM từ Image được tuỳ biến riêng ( private image

 

Lưu ý:Với dải subnet cho Vlan ILL , cần lấy subnet_id trên CMC Portal v2 nếu muốn tạo VM mới trong dải này bằng cách truy cập CMC Cloud Portalv2 -> Virtual Private Cloud -> Subnet và chọn subnet cho Vlan ILL 

 

Click vào subnet này và copy subnet ID và chọn subnet ID này trong file khởi tạo VM nếu muốn tạo VM trong subnet đó. 

 

Bước 1 : Tạo file ecs.tf với các thông tin sau

data "cmccloudv2_image" "ubuntu2204" { 

    os = "ubuntu" 

    visibility = "public"  # lựa chọn giữa public,image , shared image và private image

    name = "22.04"  # search image with name contains `22.04`

}# chọn OS Ubuntu ver 22.04

 

data "cmccloudv2_flavor_ec" "flavor_ec" {

    name = "c6.small.1" 

}

                                                                                                         

#data "cmccloudv2_subnet" "subnetvlan" {

#    subnet_id = "009b0a32-41a8-4d60-80d5-e8bab8cc544c"// nhập subnet_id lấy từ Portal của subnet cho vlan ILL nếu muốn khởi tạo VM trong dải này

}

 

resource "cmccloudv2_server" "vm_01" {

    name = "VM-01" # đặt tên cho VM

    billing_mode = "monthly" # lựa chọn billing mode, monthly hoặc hourly

    zone = "AZ2" # lựa chọn AZ khởi tạo , AZ1, AZ2 hoặc AZ3

    flavor_id = "${data.cmccloudv2_flavor_ec.flavor_ec.id}"

    source_id = "${data.cmccloudv2_image.ubuntu2204.id}"

    source_type = "image"

    volume_size = 20 # lựa chọn dung lượng volume cho root disk

    volume_type = "highio" # lựa chọn loại lưu trữ , highio hoặc commonio

    delete_on_termination = false # lựa chọn giữ lại OS disk khi xóa VM hoặc không 

    subnet_id = "${data.cmccloudv2_subnet.subnet1.id}" # lựa chọn subnet triển khai

    ip_address = "192.168.1.19" #lựa chọn Ip private , nếu không có VM sẽ được tự động assign IP

    security_group_names = ["default" ] # Vm được gắn với SG default

    # ecs_group_id = "bfdcd02a-1ffe-4e24-9cc5-09a0a6689923" lựa chọn tạo VM trong 1 ECS group nếu có

    #key_name = "" #chọn keypair để đăng nhập nếu có 

    user_data = file("init2.sh")#chọn file chứa bash script

    password = "xxxxxxxx" # lựa chọn password, tối thiểu 8 ký tự , có chữ hoa và ký tự đặc biệt

    vm_state = "active"

    tags{ #chọn tag muốn thiết lập
               key = "project"
               value = "prod"
       }

}

 

Bước 2 : Kiểm tra lại thông tin file ecs.tfterraform plan ( để kiểm tra lại resource muốn tạo ) . Chạy lệnh terraform apply để khởi tạo tài nguyên

 

Bước 3 : Kiểm tra tài nguyên đã tạo 

  • Kiểm tra với tài nguyên đã tạo với Terraform : 

Sử dụng câu lệnh terraform state show “ tên resource” để hiển thị chi tiết thông tin về VPC đã tạo

ex: terraform state show cmccloudv2_server.dat_terraform

 

  • Kiểm tra với tài nguyên đã tạo trên Portal: 

Truy cập Portalv2 , trên thanh công cụ , chọn dịch vụ Elastic Cloud Server. Tại đây sẽ hiển thị danh sách các VM của bạn. Click vào VM đã tạo để hiển thị thông tin chi tiết 

    back to top

    logo

    © 2023, CMC Cloud. All rights reserved.

    Business Registration Certificate

    Giấy ĐKKD: 0102900049. Nơi cấp: Sở Kế hoạch & Đầu tư Thành phố Hà Nội

    Chịu trách nhiệm nội dung: Đặng Tùng Sơn