리셋 되지 말자

[Terraform] NCP - server(VM 스펙) 정보 출력 본문

Infra

[Terraform] NCP - server(VM 스펙) 정보 출력

kyeongjun-dev 2021. 3. 18. 18:00

Terraform version

Terraform v0.14.8

 

이미지 정보

server의 cpu, memory, volume, ssd/hdd 등 정보를 알아내려면 먼저 이미지 정보가 필요하다.
직접 image 목록을 확인해 보고 싶다면 (not-to-be-reset.tistory.com/370)
바로 다음 단계로 넘어가고 싶다면 (not-to-be-reset.tistory.com/371)
확인!

 

필요한 파일 목록

$ ls
main.tf  outputs.tf  versions.tf

 

각 파일의 내용

- main.tf

data "ncloud_server_products" "products" {
  server_image_product_code = "SPSW0LINUX000046"
#  filter {
#    name   = "product_code"
#    values = ["SSD"] # product_code에 SSD라는 글자가 포함된 것을 필터링
#    regex  = true
#    #values = ["SPSVRSTAND000004"] # product_code만 알고, 다른건 모를경우 사용(regex 주석처리 필요)
#  }
#
#  filter {
#    name   = "cpu_count"
#    values = ["2"]
#  }
#
#  filter {
#    name   = "memory_size"
#    values = ["4GB"]
#  }
#
#  filter {
#    name   = "base_block_storage_size"
#    values = ["50GB"]
#  }
#
#  filter {
#    name   = "product_type"
#    values = ["STAND"]
#  }
}

특정 server_image_product_code에 사용할 수 있는 server 목록을 출력해주는 것 같다.
위의 image product code는 centos 7.3의 code 이다.

 

- outputs.tf

output "server" {
  value = data.ncloud_server_products.products
}

 

- versions.tf

terraform {
  required_version = ">= 0.13"
  required_providers {
    ncloud = {
      source = "navercloudplatform/ncloud"
    }
  }
}

 

실행

terraform init

위의 파일들이 있는 디렉토리에서 init 명령어 실행

 

terraform plan

plan 명령어를 사용하면 access key, region, secret key를 순서대로 입력하면 되는데 access key와 secret key는 NCP 홈페이지 로그인 후 마이페이지 -> 인증키 관리 에서 확인하고 입력하면 되고, region같은 경우에 본인은 그냥 'KR' 입력함.

모르겠으면 (not-to-be-reset.tistory.com/370) 참고

 

결과

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:

Terraform will perform the following actions:

Plan: 0 to add, 0 to change, 0 to destroy.

Changes to Outputs:
  + server = {
      + exclusion_product_code    = null
      + filter                    = null
      + id                        = "3409250494"
      + ids                       = [
          + "SPSVRHICPU000001",
          + "SPSVRHICPU000002",
          + "SPSVRHICPU000003",
          + "SPSVRHICPU000004",
          + "SPSVRHICPU000005",
          + "SPSVRHICPUSSD001",
          + "SPSVRHICPUSSD002",
          + "SPSVRHICPUSSD003",
          + "SPSVRHICPUSSD004",
          + "SPSVRHICPUSSD005",
          + "SPSVRSTAND000072",
          + "SPSVRSTAND000073",
          + "SPSVRSTAND000074",
          + "SPSVRSTAND000075",
          + "SPSVRSTAND000076",
          + "SPSVRSTAND000077",
          + "SPSVRSTAND000078",
          + "SPSVRSTAND000079",
          + "SPSVRSTAND000080",
          + "SPSVRSTAND000081",
          + "SPSVRSTAND000082",
          + "SPSVRSTAND000083",
          + "SPSVRSTAND000084",
          + "SPSVRSTAND000085",
          + "SPSVRSTAND000086",
          + "SPSVRSTAND000087",
          + "SPSVRSTAND000088",
          + "SPSVRSTAND000089",
          + "SPSVRSTAND000090",
          + "SPSVRSTAND000091",
          + "SPSVRSTAND000056",
          + "SPSVRSTAND000003",
          + "SPSVRSTAND000049",
          + "SPSVRSSD00000001",
          + "SPSVRSSD00000002",
          + "SPSVRSTAND000004",
          + "SPSVRSTAND000024",
          + "SPSVRSTAND000052",
          + "SPSVRSTAND000050",
          + "SPSVRSTAND000005",
          + "SPSVRSTAND000025",
          + "SPSVRSTAND000054",
          + "SPSVRSTAND000051",
          + "SPSVRSTAND000006",
          + "SPSVRSTAND000055",
          + "SPSVRSTAND000030",
          + "SPSVRSTAND000022",
          + "SPSVRSTAND000053",
          + "SPSVRSTAND000046",
          + "SPSVRSSD00000003",
          + "SPSVRSSD00000010",
          + "SPSVRSSD00000011",
          + "SPSVRSSD00000004",
          + "SPSVRSSD00000005",
          + "SPSVRSSD00000012",
          + "SPSVRSSD00000013",
          + "SPSVRSSD00000006",
          + "SPSVRSSD00000007",
          + "SPSVRSSD00000014",
          + "SPSVRSSD00000008",
          + "SPSVRSSD00000015",
          + "SPSVRSSD00000009",
          + "SPSVRSSD00000016",
          + "SPSVRSTAND000059",
          + "SPSVRSTAND000060",
          + "SPSVRSTAND000061",
          + "SPSVRSTAND000062",
          + "SPSVRSTAND000067",
          + "SPSVRSTAND000063",
          + "SPSVRSTAND000064",
          + "SPSVRSTAND000065",
          + "SPSVRSTAND000066",
          + "SPSVRSTAND000069",
          + "SPSVRCPU00000001",
          + "SPSVRCPU00000002",
          + "SPSVRCPU00000003",
          + "SPSVRCPU00000004",
          + "SPSVRCPU00000005",
          + "SPSVRCPUSSD00001",
          + "SPSVRCPUSSD00002",
          + "SPSVRCPUSSD00003",
          + "SPSVRCPUSSD00004",
          + "SPSVRCPUSSD00005",
          + "SPSVRGPUSSD00001",
          + "SPSVRGPU00000003",
          + "SPSVRGPUSSD00010",
          + "SPSVRGPU00000004",
          + "SPSVRGPUSSD00005",
          + "SPSVRGPUSSD00006",
          + "SPSVRGPUSSD00002",
          + "SPSVRGPU00000001",
          + "SPSVRGPU00000002",
          + "SPSVRSSD00000021",
          + "SPSVRSSD00000023",
          + "SPSVRSSD00000025",
          + "SPSVRSSD00000027",
          + "SPSVRSSD00000029",
          + "SPSVRSSD00000031",
        ]
      + internet_line_type_code   = null
      + output_file               = null
      + product_code              = null
      + product_name_regex        = null
      + server_image_product_code = "SPSW0LINUX000046"
      + server_products           = [
          + {
              + base_block_storage_size   = "50GB"
              + cpu_count                 = 2
              + disk_type                 = "NET"
              + generation_code           = "G2"
              + id                        = "SPSVRHICPU000001"
              + infra_resource_type       = "SVR"
              + memory_size               = "4GB"
              + product_code              = "SPSVRHICPU000001"
              + product_description       = "vCPU 2EA, Memory 4GB, Disk 50GB"
              + product_name              = "vCPU 2EA, Memory 4GB, Disk 50GB"
              + product_type              = "HICPU"
              + server_image_product_code = ""
            },
          + {
              + base_block_storage_size   = "50GB"
              + cpu_count                 = 4
              + disk_type                 = "NET"
              + generation_code           = "G2"
              + id                        = "SPSVRHICPU000002"
              + infra_resource_type       = "SVR"
              + memory_size               = "8GB"
              + product_code              = "SPSVRHICPU000002"
              + product_description       = "vCPU 4EA, Memory 8GB, Disk 50GB"
              + product_name              = "vCPU 4EA, Memory 8GB, Disk 50GB"
              + product_type              = "HICPU"
              + server_image_product_code = ""
            },

product_code를 얻을 수 있다. 굿!

Comments