클라우드 템플릿 디자이너는 입력 매개 변수를 사용하여 사용자가 요청 시 사용자 지정 선택이 가능하도록 할 수 있습니다.
입력 작동 방식
사용자가 입력을 제공할 때, 약간 다른 템플릿 복사본을 여러 개 저장할 필요가 더 이상 없습니다. 또한 입력은 2일차 작업에 대한 템플릿을 준비할 수 있습니다. vRealize Automation 2일차 업데이트에 클라우드 템플릿 입력을 사용하는 방법의 내용을 참조하십시오.
다음 입력은 MySQL 데이터베이스 서버에 대해 하나의 클라우드 템플릿을 생성하고, 이 템플릿을 사용자가 여러 클라우드 리소스 환경에 배포하여 매번 다른 용량과 자격 증명을 적용할 수 있는 방법을 보여줍니다.
입력 매개 변수 추가
선택 가능한 값을 설정하는 inputs
섹션을 템플릿 코드에 추가합니다.
다음 예에서는 시스템 크기, 운영 체제 및 클러스터링된 서버의 수를 선택할 수 있습니다.
inputs: wp-size: type: string enum: - small - medium description: Size of Nodes title: Node Size wp-image: type: string enum: - coreos - ubuntu title: Select Image/OS wp-count: type: integer default: 2 maximum: 5 minimum: 2 title: Wordpress Cluster Size description: Wordpress Cluster Size (Number of nodes)
코드 편집이 불편하면 코드 편집기 입력 탭을 클릭하고 여기에 설정을 입력할 수 있습니다. 다음 예는 앞에서 언급한 MySQL 데이터베이스에 대한 일부 입력을 보여줍니다.
입력 매개 변수 참조
다음으로 resources
섹션에서 ${input.property-name}
구문을 사용하여 입력 매개 변수를 참조합니다.
속성 이름에 공백이 포함되어 있는 경우 점 표기법을 사용하는 대신 대괄호와 큰따옴표로 구분합니다. ${input["속성 이름"]}
input
이라는 단어를 사용할 수 없습니다.
resources: WebTier: type: Cloud.Machine properties: name: wordpress flavor: '${input.wp-size}' image: '${input.wp-image}' count: '${input.wp-count}'
중첩된 입력
입력을 구성하거나 분류하려는 경우 중첩된 입력이 지원됩니다. 다음 예에서 CPU와 메모리는 상위 머리글인 "level" 아래에 함께 있습니다.
inputs: cluster: type: integer title: Cluster default: 1 minimum: 1 maximum: 4 level: type: object properties: cpu: type: integer title: CPU default: 1 minimum: 1 maximum: 4 memory: type: integer title: Memory default: 2048 minimum: 2048 maximum: 4096
"resources" 섹션에서 중첩된 입력을 참조하려면 경로에 상위 항목을 포함합니다.
resources: Disk_1: type: Cloud.vSphere.Disk allocatePerInstance: true properties: capacityGb: 1 count: ${input.cluster} Machine_1: type: Cloud.vSphere.Machine allocatePerInstance: true properties: totalMemoryMB: ${input.level.memory} attachedDisks: - source: ${slice(resource.Disk_1[*].id, count.index, count.index + 1)[0]} count: ${input.cluster} imageRef: ubuntu cpuCount: ${input.level.cpu}
선택적 입력 및 필수 입력
부울을 제외한 모든 유형의 경우 사용자 항목은 기본적으로 선택 사항입니다. 입력을 요구하려면 다음 중 하나를 수행합니다.
- 기본값을 설정합니다.
- 중첩된 입력이 없으면
populateRequiredOnNonDefaultProperties
속성을 추가합니다.inputs: cluster: type: integer populateRequiredOnNonDefaultProperties: true title: Cluster minimum: 1 maximum: 4
정식 속성 그룹을 참조할 때 이 설정을 적용할 수도 있습니다.
inputs: pgmachine: type: object populateRequiredOnNonDefaultProperties: true $ref: /ref/property-groups/machine
- 중첩된 입력이 있는 경우
populateRequiredForNestedProperties
속성을 추가합니다.inputs: cluster: type: integer title: Cluster default: 1 minimum: 1 maximum: 4 level: type: object properties: cpu: type: integer populateRequiredForNestedProperties: true title: CPU minimum: 1 maximum: 4 memory: type: integer populateRequiredForNestedProperties: true title: Memory minimum: 2048 maximum: 4096
정식 속성 그룹 참조가 중첩된 경우에도 이 설정을 적용할 수 있습니다.
level: type: object properties: cpu: type: integer populateRequiredForNestedProperties: true title: CPU minimum: 1 maximum: 4 memory: type: integer populateRequiredForNestedProperties: true title: Memory minimum: 2048 maximum: 4096 pgrequester: type: object populateRequiredForNestedProperties: true $ref: /ref/property-groups/requesterDetails
선택적 입력—입력을 선택 사항으로 유지하려면 눈금 표시를 사용하여 빈 기본값을 설정합니다.
owner: type: string minLength: 0 maxLength: 30 title: Owner Name description: Account Owner default: ''
입력 속성 목록
속성 | 설명 |
---|---|
const | oneOf와 함께 사용됩니다. 친숙한 제목과 연결된 실제 값입니다. |
default | 입력에 대해 미리 채워진 값입니다. 기본값은 올바른 유형이어야 합니다. 정수의 기본값으로 단어를 입력하지 마십시오. |
description | 입력에 대한 사용자 도움말 텍스트입니다. |
encrypted | 사용자가 입력한 내용을 암호화할지 여부를 true 또는 false로 지정합니다. 암호는 대개 암호화됩니다. 여러 클라우드 템플릿에서 재사용 가능한 암호화된 속성을 생성할 수도 있습니다. 비밀 Cloud Assembly 속성의 내용을 참조하십시오. |
enum | 허용되는 값의 드롭다운 메뉴입니다. 다음 예시를 형식 가이드로 사용하십시오. enum: - value 1 - value 2 |
format | 입력에 필요한 형식을 설정합니다. 예를 들어 (25/04/19)는 날짜-시간을 지원합니다. Service Broker 사용자 지정 양식에서 날짜 선택을 사용할 수 있습니다. |
items | 어레이 내의 항목을 선언합니다. 숫자, 정수, 문자열, 부울 또는 개체를 지원합니다. |
maxItems | 어레이 내에서 선택 가능한 최대 항목 수입니다. |
maxLength | 문자열에 허용되는 최대 문자 수입니다. 예를 들어 필드를 25자로 제한하려면 |
maximum | 숫자나 정수에 허용되는 최대값입니다. |
minItems | 어레이 내에서 선택 가능한 최소 항목 수입니다. |
minLength | 문자열에 허용되는 최소 문자 수입니다. |
minimum | 숫자나 정수에 허용되는 가장 작은 값입니다. |
oneOf | 사용자 입력 양식에서 친숙하지 않은 값(const)에 대한 친숙한 이름(title)을 표시할 수 있습니다. 기본값을 설정하는 경우 title이 아니라 const를 설정합니다. 문자열, 정수 및 숫자 형식과 함께 사용할 수 있습니다. |
pattern | 정규식 구문에서 문자열 입력에 허용되는 문자입니다. 예: |
속성 | 개체에 대한 key:value 속성 블록을 선언합니다. |
readOnly | 양식 레이블만 제공하는 데 사용됩니다. |
title | oneOf와 함께 사용됩니다. const 값에 대한 친숙한 이름입니다. title은 배포 시 사용자 입력 양식에 표시됩니다. |
type | 숫자, 정수, 문자열, 부울 또는 개체의 데이터 유형입니다.
중요:
부울 유형은 요청 양식에 빈 확인란을 추가합니다. 상자를 그대로 두면 입력이 False가 되지 않습니다. 입력을 False로 설정하려면 사용자가 확인란을 선택한 다음 선택을 취소해야 합니다. |
writeOnly | 양식에서 별표 뒤에 키 입력을 숨깁니다. enum과 함께 사용할 수 없습니다. Service Broker 사용자 지정 양식에서 암호 필드로 표시됩니다. |
추가 예시
열거형이 포함된 문자열
image: type: string title: Operating System description: The operating system version to use. enum: - ubuntu 16.04 - ubuntu 18.04 default: ubuntu 16.04 shell: type: string title: Default shell Description: The default shell that will be configured for the created user. enum: - /bin/bash - /bin/sh
최소 및 최대 정수
count: type: integer title: Machine Count description: The number of machines that you want to deploy. maximum: 5 minimum: 1 default: 1
개체 어레이
tags: type: array title: Tags description: Tags that you want applied to the machines. items: type: object properties: key: type: string title: Key value: type: string title: Value
친숙한 이름의 문자열
platform: type: string oneOf: - title: AWS const: platform:aws - title: Azure const: platform:azure - title: vSphere const: platform:vsphere default: platform:aws
패턴 유효성 검사가 포함된 문자열
username: type: string title: Username description: The name for the user that will be created when the machine is provisioned. pattern: ^[a-zA-Z]+$
문자열을 암호로
password: type: string title: Password description: The initial password that will be required to logon to the machine. Configured to reset on first login. encrypted: true writeOnly: true
문자열을 텍스트 영역으로
ssh_public_key: type: string title: SSH public key maxLength: 256
부울
public_ip: type: boolean title: Assign public IP address description: Choose whether your machine should be internet facing. default: false
날짜 및 시간 일정 선택기
leaseDate: type: string title: Lease Date format: date-time