클라우드 관리자는 GCP(Google Cloud Platform) 플러그인을 활용하여 인프라를 구축할 때 플러그인 기반 인스턴스 리소스를 프로비저닝할 수 있습니다. 할당 도우미를 사용하여 인스턴스에 대한 할당 논리를 제공할 수도 있습니다.

최신 GCP 속성을 사용하여 인프라 요구 사항을 지원하도록 인스턴스를 쉽게 구성할 수 있습니다. 예를 들어 업데이트 중에 인스턴스가 중단되는 것을 방지하려면 프로비저닝 중에 클라우드 템플릿에서 most_disruptive_allowed_action 속성을 사용할 수 있습니다.

인스턴스를 배포한 후 2일 차 작업을 실행하여 리소스를 관리할 수 있습니다(예: 리소스에 추가 디스크 연결).

VMware Aria Automation의 플러그인 및 할당에 대한 자세한 내용은 Automation Assembler의 플러그인 기반 설계 및 배포를 참조하십시오.

인스턴스 속성

플러그인 기반 인스턴스 리소스에는 다음 속성이 필요합니다.

인스턴스 속성의 전체 목록은 Google Cloud REST 설명서를 참조하십시오. GCP 설명서의 리소스 속성은 카멜 케이스(camelCase)로 작성되지만 Automation Assembler의 리소스 속성은 스네이크 케이스(snake_case)로 작성됩니다.

name 인스턴스의 이름입니다.

이름 지정 요구 사항은 Google Cloud 설명서에서 이름 지정 규칙 을 참조하십시오.

zone 인스턴스가 배포될 영역입니다.

자세한 내용은 Google Cloud 설명서에서 리전 및 영역을 참조하십시오.

account 팀에서 클라우드 템플릿을 배포하는 계정 지역에 대한 GCP 클라우드 계정입니다.

자세한 내용은 VMware Aria Automation에서 Google Cloud Platform 클라우드 계정 생성을 참조하십시오.

다음 섹션에는 Automation Assembler에서 플러그인 기반 인스턴스를 프로비저닝하기 위한 클라우드 템플릿 예시가 포함되어 있습니다.

별도의 디스크 리소스로 보호된 인스턴스 프로비저닝

다음 템플릿은 할당 도우미를 사용하여 보안 인스턴스를 프로비저닝하는 방법을 보여줍니다. 이 예에서는 디스크를 생성하여 보호된 인스턴스 리소스에 연결합니다.

이 템플릿을 배포하기 전에 다음 단계를 완료하십시오.
  1. Automation Assembler에서 GCP 클라우드 계정을 생성하고 프로젝트를 생성하고 클라우드 영역을 추가합니다.

    이 예에서 클라우드 영역은 europe-central2 입니다.

  2. 프로젝트에 대한 이미지 매핑을 설정합니다.

    선택한 이미지는 보호된 인스턴스 기능을 지원해야 합니다.

  3. 프로젝트에 대한 플레이버 매핑을 설정합니다.

    이 예에서 버전 n1은 n1-standard-1 GCP 시스템 유형에 매핑됩니다.

  4. 동일한 클라우드 영역에 태그 default를 사용하여 네트워크 프로파일을 설정하여 기본 GCP 네트워크에 매핑합니다.
  5. 암호화 키를 사용하는 경우 Blueprint를 배포하기 전에 키 링과 키를 생성해야 합니다. 이 예제 템플릿은 글로벌 키 링을 사용합니다. 키 ID는 템플릿에 대한 입력으로 전달됩니다. 자세한 내용은 GCP Cloud Key Management Service 설명서를 참조하십시오.
formatVersion: 1
inputs:
  name:
    type: string
    title: VM name
  kms_key_name:
    type: string
    title: Full key name
    description: 'Example format for a global key ring: projects/<project>/locations/global/keyRings/<ring>/cryptoKeys/<key>'
resources:
  Allocations_Compute_1:
    type: Allocations.Compute
    metadata:
      layoutPosition:
        - 0
        - 0
    properties: {}
  Allocations_Network_1:
    type: Allocations.Network
    metadata:
      layoutPosition:
        - 0
        - 1
    properties:
      networkType: existing
      constraints:
        - tag: default
  Allocations_Flavor_1:
    type: Allocations.Flavor
    metadata:
      layoutPosition:
        - 0
        - 2
    properties:
      flavor: n1
  Allocations_Image_1:
    type: Allocations.Image
    metadata:
      layoutPosition:
        - 0
        - 3
    properties:
      image: centos-7-shielded
  BOOT_DISK:
    type: Idem.GCP.COMPUTE.DISK
    metadata:
      layoutPosition:
        - 1
        - 1
    properties:
      name: idem-disk-${input.name}-boot
      account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
      zone: ${resource.Allocations_Compute_1.selectedPlacementCompute.id}
      type_: ${'projects/' + resource.Allocations_Compute_1.selectedCloudAccount.additionalProperties.gcp.project + '/zones/' + resource.Allocations_Compute_1.selectedPlacementCompute.id + '/diskTypes/pd-balanced'}
      size_gb: 20
      source_image: ${resource.Allocations_Image_1.selectedImageId}
      disk_encryption_key:
        kms_key_name: ${input.kms_key_name}
  Idem_GCP_COMPUTE_INSTANCE_1:
    type: Idem.GCP.COMPUTE.INSTANCE
    metadata:
      layoutPosition:
        - 2
        - 2
    properties:
      name: ${input.name}
      zone: ${resource.Allocations_Compute_1.selectedPlacementCompute.id}
      account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
      can_ip_forward: false
      machine_type: ${'projects/' + resource.Allocations_Compute_1.selectedCloudAccount.additionalProperties.gcp.project + '/zones/' + resource.Allocations_Compute_1.selectedPlacementCompute.id + '/machineTypes/' + resource.Allocations_Flavor_1.selectedInstanceTypeName }
      shielded_instance_config:
        enable_integrity_monitoring: true
        enable_secure_boot: true
        enable_vtpm: true
      network_interfaces:
        - access_configs:
            - kind: compute#accessConfig
              name: External NAT
              network_tier: PREMIUM
              set_public_ptr: false
              type_: ONE_TO_ONE_NAT
          kind: compute#networkInterface
          name: nic0
          stack_type: IPV4_ONLY
          subnetwork: ${'projects/' + resource.Allocations_Compute_1.selectedCloudAccount.additionalProperties.gcp.project + '/regions/' + resource.Allocations_Compute_1.selectedRegion.id + '/subnetworks/' + resource.Allocations_Network_1.selectedSubnet.name }
      disks:
        - auto_delete: false
          boot: true
          device_name: ${resource.BOOT_DISK.name}
          source: ${resource.BOOT_DISK.resource_id}
          mode: READ_WRITE
          type_: PERSISTENT
        - auto_delete: false
          boot: false
          device_name: idem-disk-${input.name}-additional
          initialize_params:
            disk_size_gb: 15
            disk_type: ${'projects/' + resource.Allocations_Compute_1.selectedCloudAccount.additionalProperties.gcp.project + '/zones/' + resource.Allocations_Compute_1.selectedPlacementCompute.id + '/diskTypes/pd-balanced'}
          disk_encryption_key:
            kms_key_name: ${input.kms_key_name}
          mode: READ_WRITE
          type_: PERSISTENT
      scheduling:
        automatic_restart: true
        on_host_maintenance: MIGRATE
        preemptible: false
        provisioning_model: STANDARD
      deletion_protection: false