クラウド テンプレート デザイナは、入力パラメータを使用して、ユーザーが申請時にカスタム選択を行えるようにできます。
入力の仕組み
ユーザーが入力するようにすると、違いのわずかなテンプレートの複数のコピーを保存する必要がなくなります。また、入力する場合は、インストール後の作業に対応したテンプレートを準備できます。vRealize Automation の Day 2 更新でクラウド テンプレートの入力を使用する方法を参照してください。
次の入力は、1 つのクラウド テンプレートを 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: ''
vRealize Orchestrator への入力の送信
vRealize Orchestrator アクションにクラウド テンプレートを入力するには、次の手順を実行します。vRealize Orchestrator アクションでは、クラウド テンプレート コードに直接入力するよりも、入力フォームを使用する方が簡単です。
- vRealize Automation と統合された vRealize Orchestrator インスタンスで、必要なアクションが存在することを確認します。
- Cloud Assembly のクラウド テンプレート デザイン画面で、[入力] タブに移動し、クリックして新しい入力を追加します。
- タイプを選択し、[外部ソース] を選択します。
- [アクション] の横にある [選択] ボタンをクリックします。
- [アクション] 検索フィールドを使用して、vRealize Orchestrator アクションを特定し、選択します。
- アクション パラメータを入力するか、選択します。
入力を保存して作成すると、クラウド テンプレート コードに $dynamicDefault
入力として表示されます。例:
inputs: backupnetwork: type: string $dynamicDefault: /data/vro-actions/com.insanpaolo/getBackupNetworkVLAN?network={{abcdef123456}}&tenant={{abcdef123456}}
入力プロパティのリスト
プロパティ | 説明 |
---|---|
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) をわかりやすい名前(タイトル)で表示できるようにします。デフォルト値を設定する場合は、タイトルではなく、定数を設定します。 文字列、整数、および数値のタイプとともに使用します。 |
pattern | 正規表現の構文で表した、文字列入力に使用可能な文字。 例: |
properties | オブジェクトの key:value プロパティ ブロックを宣言します。 |
readOnly | フォーム ラベルのみを指定する際に使用されます。 |
title | oneOf とともに使用されます。定数値のわかりやすい名前。タイトルは、展開時にユーザー入力フォームに表示されます。 |
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