클라우드 템플릿을 반복적으로 개발하는 동안 또는 최종 템플릿이 있는 경우 Service Broker 셀프 서비스 카탈로그에서 소비자가 템플릿을 사용하도록 제공할 수 있습니다. 사용자 환경을 더욱 향상시키기 위해 사용자 지정 요청 양식을 생성할 수 있습니다. 사용자 지정된 양식은 간단한 템플릿 입력 옵션보다 더 강력합니다.

우선 수행할 작업

  • 템플릿을 지원하는 인프라가 있는지 확인합니다. 그렇지 않은 경우 먼저 자습서: Cloud Assembly에서 vSphere 인프라와 배포 설정 및 테스트 항목을 참조하고 다른 자습서를 계속 참조합니다.
  • 일부 리소스 풀에 env:devenv:prod 태그를 지정했는지 확인합니다. 자세한 내용은 자습서: Cloud Assembly에서 태그를 사용하여 vSphere 리소스 관리 항목을 참조하십시오.
  • 배포 가능한 클라우드 템플릿(아래와 유사함)이 있는지 확인합니다. 이 자습서는 다음 템플릿으로 시작됩니다.
    formatVersion: 1
    inputs:
      installedOS:
        type: string
        title: Operating System
        description: Select the operating system.
        enum:
          - centos
          - ubuntu
      placement:
        type: string
        enum:
          - 'env:dev'
          - 'env:prod'
        default: 'env:dev'
        title: Select Placement for Deployment
        description: Target Environment
    resources:
      Cloud_vSphere_Disk_1:
        type: Cloud.vSphere.Disk
        properties:
          capacityGb: 1
      Cloud_vSphere_Machine_1:
        type: Cloud.vSphere.Machine
        properties:
          image: '${input.installedOS}'
          installedOS: '${input.installedOS}'
          flavor: small
          constraints:
            - tag: '${input.placement}'
          tags:
            - key: db
              value: mysql
          networks:
            - network: '${resource.Cloud_NSX_Network_1.id}'
              tags:
                - key: db
                  value: mysql
          attachedDisks:
            - source: '${resource.Cloud_vSphere_Disk_1.id}'
      Cloud_NSX_Network_1:
        type: Cloud.NSX.Network
        properties:
          networkType: existing
          tags:
            - key: NGINX
              value: web

1단계: 클라우드 템플릿에 입력 추가

이 절차는 기존 OS 유형 입력 외에도 배치 입력을 업데이트하고 크기 입력을 추가합니다. Service Broker에서 요청 양식을 사용자 지정할 때 사용자 지정된 요청 양식의 세 필드입니다.

  1. Cloud Assembly에서 설계 > 클라우드 템플릿을 선택하고 위에 제공된 템플릿을 열거나 생성합니다.

    샘플 템플릿은 다양한 옵션을 설명하는 데 사용되며 샘플 값을 포함합니다. 환경에 맞게 조정합니다.

  2. 크기 변수를 추가하고 입력 섹션에서 크기를 정의합니다.
    1. Cloud_vSphere_Machine_1 섹션에서 flavor 속성에 변수를 추가합니다.
       flavor: '${input.size}'
    2. 입력 섹션에서 사용자가 배포 크기를 선택할 수 있도록 사용자 입력 이름 크기를 추가합니다. 이것은 클라우드 영역에 대해 정의한 티셔츠 크기라고도 합니다.
       size:
          type: string
          title: Deployment size
          description: Select the the deployment t-shirt size.
          enum:
            - small
            - medium
            - large
  3. 태그 문자열이 아닌 설명하는 용어로 배치 입력을 업데이트합니다.

    이러한 제약 조건 태그는 자습서: Cloud Assembly에서 태그를 사용하여 vSphere 리소스 관리에서 추가한 기능 태그와 일치합니다.

    1. 사용자가 배포 배치로 개발 또는 운영을 선택할 수 있도록 입력 섹션에서 배치라는 사용자 입력을 추가합니다.

      이 예에서는 oneOf 특성을 사용합니다. 그러면 배포 프로세스에 필요한 문자열을 제출하면서 자연어 레이블을 제시할 수 있습니다. 예를 들어 env:devenv:prod 태그가 있습니다.

       
      placement:
          type: string
          oneOf:
            - title: Development
              const: 'env:dev'
            - title: Production
              const: 'env:prod'
          default: 'env:dev'
          title: Select Deployment Placement
          description: Target Environment
  4. 전체 YAML을 검토하여 다음 예와 유사한지 확인합니다.
    formatVersion: 1
    inputs:
      installedOS:
        type: string
        title: Operating system
        description: Select the operating system.
        enum:
          - centos
          - ubuntu
      placement:
        type: string
        oneOf:
          - title: Development
            const: 'env:dev'
          - title: Production
            const: 'env:prod'
        default: 'env:dev'
        title: Select Deployment Placement
        description: Target Environment
      size:
        type: string
        title: Deployment size
        description: Select the the deployment t-shirt size.
        enum:
          - small
          - medium
          - large
    resources:
      Cloud_vSphere_Disk_1:
        type: Cloud.vSphere.Disk
        properties:
          capacityGb: 1
      Cloud_vSphere_Machine_1:
        type: Cloud.vSphere.Machine
        properties:
          image: '${input.installedOS}'
          installedOS: '${input.installedOS}'
          flavor: '${input.size}'
          constraints:
            - tag: '${input.placement}'
          tags:
            - key: db
              value: mysql
          networks:
            - network: '${resource.Cloud_NSX_Network_1.id}'
              tags:
                - key: db
                  value: mysql
          attachedDisks:
            - source: '${resource.Cloud_vSphere_Disk_1.id}'
      Cloud_NSX_Network_1:
        type: Cloud.NSX.Network
        properties:
          networkType: existing
          tags:
            - key: NGINX
              value: web
  5. 배포를 클릭하고 요청의 두 번째 페이지가 다음 예와 유사한지 확인한 다음 배포 후 선택한 프로덕션 리소스 풀 개발에 배포가 있는지 확인할 수 있습니다.

    OS 유형, 배포 배치 및 배포 크기에 대한 입력을 보여주는 배포 요청 양식의 두 번째 페이지.

2단계: 클라우드 템플릿 버전 및 릴리스

배포 가능한 템플릿이 있으면 이제 다른 용도로 배포할 수 있도록 Service Broker 카탈로그에 제공할 수 있습니다. 카탈로그에 추가할 수 있도록 클라우드 템플릿 검색이 가능하게 만들려면 클라우드 템플릿을 릴리스해야 합니다. 이 절차에서는 버전을 지정하여 템플릿의 스냅샷을 캡처한 다음 템플릿을 릴리스합니다.

  1. 설계 > 클라우드 템플릿을 선택하고 설계 캔버스에서 템플릿을 엽니다.
  2. 버전을 클릭하고 설명을 입력합니다.

    버전 번호, 설명 및 릴리스 확인란이 선택되어 있는 버전 생성 대화상자.
  3. 릴리스 확인란을 선택하고 생성을 클릭합니다.

    클라우드 템플릿을 릴리스해도 Service Broker에 자동으로 추가되지 않습니다. 템플릿을 릴리스하면 템플릿을 검색하여 카탈로그에 추가할 수 있습니다.

3단계: Service Broker 카탈로그에 클라우드 템플릿 추가

Service Broker 카탈로그를 사용하면 템플릿을 생성하는 방법을 알 필요가 없는 조직의 다른 소비자에게 클라우드 템플릿을 제공할 수 있습니다. 이러한 소비자는 카탈로그를 통해 템플릿을 배포할 수 있습니다.

템플릿을 카탈로그 항목으로 추가하려면 먼저 템플릿을 Service Broker로 가져와야 합니다. 릴리스된 클라우드 템플릿만 가져올 수 있습니다.

  1. Cloud Assembly에서 Service Broker를 열려면 오른쪽 상단에 있는 애플리케이션 메뉴를 클릭합니다.
    페이지 오른쪽 위에 있는 애플리케이션 메뉴가 열려 있고 Service Broker가 강조 표시되어 있습니다.
  2. Service Broker를 클릭합니다.
  3. 클라우드 템플릿을 가져옵니다.
    1. Service Broker에서 컨텐츠 및 정책 > 컨텐츠 소스를 선택합니다.
    2. 새로 만들기를 클릭한 다음 VMware Cloud Templates를 선택합니다.
    3. 이름을 입력합니다.

      이 자습서의 경우 Cloud Assembly DevProject를 입력합니다.

    4. 프로젝트의 경우 Cloud Assembly에서 직접 생성한 개발 프로젝트를 선택합니다.
    5. 검증을 클릭합니다.

      하나 이상의 항목을 찾았다고 시스템에 표시되어야 합니다.

    6. 유효성이 검사되면 생성 및 가져오기를 클릭합니다.

      Cloud Assembly DevProject가 목록에 컨텐츠 소스로 추가됩니다.

  4. 카탈로그에서 클라우드 템플릿을 사용할 수 있도록 합니다.
    1. 컨텐츠 및 정책 > 정책 > 정의를 선택합니다.
    2. 새 정책을 클릭한 다음 컨텐츠 공유 정책을 클릭합니다.
    3. 이름을 입력합니다.

      이 자습서의 경우 DevProject Policy를 입력합니다.

    4. 범위 목록에서 개발 프로젝트를 선택합니다.
    5. 컨텐츠 공유 섹션에서 항목 추가를 클릭합니다.
    6. 항목 공유 대화상자에서 Cloud Assembly DevProject를 선택하고 저장을 클릭합니다.
    7. 사용자 섹션에서 카탈로그에서 항목을 보려는 프로젝트 사용자 및 그룹을 선택합니다.
    8. 생성을 클릭합니다.
  5. 개발 템플릿이 카탈로그에 추가되었는지 확인하려면 카탈로그를 클릭합니다.
  6. Development Template 카드에서 요청을 클릭합니다.

    클라우드 템플릿에서 본 입력이 여기에 제공된 것을 볼 수 있습니다. 다음 단계는 요청 양식을 사용자 지정하는 단계입니다.


    배포 템플릿 카탈로그 항목에 대한 카탈로그 요청 양식입니다. 여기에는 배포 이름, 운영 체제, 배치 및 배포 크기 옵션이 포함됩니다.

4단계: 템플릿에 대한 사용자 지정 양식 생성

이 사용자 지정 양식의 목표는 env:dev 또는 env:prod 태그를 기반으로 사용자가 운영 체제 및 배치를 선택할 수 있는 양식을 제공하는 것입니다. env:dev 옵션을 사용하면 사용자가 소형 또는 중형을 선택할 수 있습니다. 대형은 선택할 수 없습니다. 하지만 사용자가 env:prod를 선택하면 대형을 선택하는 옵션이 없으며 크기는 사용자에게 숨겨지지만 요청에는 포함되어 있습니다.

  1. Service Broker에서 사용자 지정 양식을 생성하려면 컨텐츠 및 정책 > 컨텐츠를 선택합니다.
  2. Development Template 항목 왼쪽에 있는 세로 줄임표를 클릭하고 양식 사용자 지정을 클릭합니다.
  3. 입력 옵션을 사용자 지정합니다.
    1. 캔버스에서 캔버스의 필드를 클릭하고 다음 표에 지정된 대로 속성을 구성합니다.
      캔버스 필드 이름 화면 표시 제약 조건
      운영 체제

      레이블 및 유형

      • 레이블 = 운영 체제

      값 옵션

      • 값 옵션 = 상수
      • 값 소스 = centos|CentOS,ubuntu|Ubuntu

      이 예에서는 값 옵션을 사용하여 모든 소문자 운영 체제 이름을 선호하는 OS 이름으로 사용자 지정합니다.

      배포 배치 선택

      값 옵션

      • 값 옵션 = 상수
      • 값 소스 = env:dev|Development,env:prod|Production
      배포 크기

      가시성

      • 값 소스 = 조건부 값
      • 값 설정 = 배포 배치 선택이 env:dev와 같으면 예

      기본값

      • 값 소스 = 조건부 값
      • 값 설정 = 배포 선택이 env:prod와 같으면 대형

      값 옵션

      • 값 옵션 = 상수
      • 값 소스 = small|Small,medium|Medium

      값 소스에는 대형이 포함되어 있지 않습니다. 대형은 운영에만 사용할 수 있으며 필수 값이기 때문에 제외됩니다. 대형 값은 사용자 시작 작업 없이 배포 요청에 포함됩니다.

    2. 카탈로그에서 양식을 켜려면 사용을 클릭합니다.
    3. 저장을 클릭합니다.
  4. 최소한 개발 소형 및 운영 요청을 제출하여 올바른 결과를 얻으려면 카탈로그에서 양식을 테스트합니다.

    다음 예를 사용하여 결과를 확인할 수 있습니다.

    1. 이 예에서는 Test small이라는 이름을 제공하고 옵션으로 CentOS, 개발 및 소형을 선택하여 개발 소형 요청 양식을 테스트합니다.
      배포 이름이 Test small이고 개발 및 소형이 선택된 카탈로그 요청 양식.
    2. 개발 소형 배포를 확인하려면 리소스 > 배포를 선택하고 Test small 배포를 클릭합니다.
    3. [토폴로지] 탭에서 Cloud_vSphere_Machine을 클릭한 다음 오른쪽 창에서 [사용자 지정 속성] 섹션을 찾습니다.

      검토할 값에는 cpuCount = 2 및 flavor = small이 포함됩니다.


      캔버스에 Cloud_vSphere_Machine이 강조 표시되고 오른쪽 창에 cpuCount=2 및 flavor=small이 강조 표시되어 있는 배포 토폴로지 페이지.
    4. 이 예에서는 Test large라는 이름을 입력하고 옵션으로 CentOS 및 운영을 선택하여 운영 요청 양식을 테스트합니다.

      앞에서, 사용자에게 크기를 표시하거나 요구하지 않도록 양식을 구성했습니다.


      배포 이름이 Test large이고 운영이 선택된 카탈로그 요청 양식.
    5. 운영 배포를 확인하려면 리소스 > 배포를 선택하고 Test large 배포를 클릭합니다.
    6. [토폴로지] 탭에서 Cloud_vSphere_Machine을 클릭한 다음 오른쪽 창에서 [사용자 지정 속성] 섹션을 찾습니다.

      검토할 값에 cpuCount = 8 및 flavor = large가 포함됩니다.


      캔버스에 Cloud_vSphere_Machine이 강조 표시되고 오른쪽 창에 cpuCount=8 및 flavor=large가 강조 표시되어 있는 배포 토폴로지 페이지.

5단계: 카탈로그에서 클라우드 템플릿 버전 제어

대부분의 경우 Service Broker 카탈로그에서 최신 클라우드 템플릿만 사용할 수 있도록 설정합니다. 다음 절차는 반복적인 개발을 지원합니다. 즉 여기서는 템플릿 버전을 릴리스하고 카탈로그에 추가하지만, 이제 템플릿을 개선했으므로 현재 버전을 최신 버전으로 교체하려고 합니다.

2단계에서 템플릿의 버전을 지정하고 릴리스했기 때문에 프로세스를 잘 알고 있습니다. 3단계에서는 템플릿을 카탈로그에 추가했습니다. 이 절차는 반복적인 개발을 수행하고 카탈로그를 최신 버전으로 업데이트할 때 두 단계를 함께 진행합니다.

카탈로그에서 여러 버전을 사용할 수 있도록 설정할 수도 있습니다.

  1. Cloud Assembly에서, 카탈로그에서 사용할 수 있도록 설정하려는 템플릿의 버전을 지정합니다.
    1. 설계 > 클라우드 템플릿을 선택하고 설계 캔버스에서 템플릿을 엽니다.
    2. 버전 기록을 클릭합니다.
    3. 카탈로그에 추가할 버전을 찾은 다음 버전을 클릭합니다.
    4. 설명을 입력하고 릴리스 확인란을 선택한 후 생성을 클릭합니다.

      이때 카탈로그에 이전 버전을 유지할 수 있습니다. 여러 버전을 사용하려는 경우 버전 릴리스를 취소하는 다음 단계를 무시합니다.

    5. 카탈로그에서 하나의 템플릿 버전만 사용하려면 버전 기록 목록을 검토하고 카탈로그에서 원하지 않는 모든 버전에 대해 릴리스 취소를 클릭합니다.
  2. Service Broker 카탈로그를 최신 버전으로 업데이트하고 이전 버전을 바꾸려면 새 버전을 수집해야 합니다.
    1. Service Broker에서 컨텐츠 및 정책 > 컨텐츠 소스를 선택합니다.
    2. 이 자습서에서 사용되는 Cloud Assembly DevProject 컨텐츠 소스를 클릭합니다.
    3. 검증을 클릭합니다.

      항목을 찾았다는 메시지가 표시됩니다.

    4. 저장 및 가져오기를 클릭합니다.
  3. 카탈로그에 필요한 버전이 표시되는지 또는 버전이 표시되지 않는지 확인합니다.
    1. Service Broker에서 카탈로그를 클릭합니다.
    2. 카탈로그 항목을 찾아서 요청을 클릭합니다.
    3. 요청 양식의 맨 위에서 버전을 클릭하고 버전을 확인합니다.

    다음 스크린샷은 8을 표시합니다.


    단일 버전을 사용할 수 있는 새 요청 양식의 스크린샷.