身為雲端範本設計人員,您可以使用輸入參數,以便使用者可以在請求時進行自訂選取。

輸入的運作方式

使用者提供輸入時,您不再需要儲存多個僅有細微差別的範本複本。此外,輸入可以準備用於第 2 天作業的範本。請參閱如何使用雲端範本輸入執行 VMware Aria 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["property name"]}

重要: 您在雲端範本代碼中無法使用 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: ''
可選輸入

將輸入傳送到 VMware Aria Automation Orchestrator

若要為 VMware Aria Automation Orchestrator 動作提供雲端範本輸入,請執行以下步驟。對於 VMware Aria Automation Orchestrator 動作,「輸入」表單比直接在雲端範本代碼中輸入更易於使用。

  1. 在與 VMware Aria Automation 整合的 VMware Aria Automation Orchestrator 執行個體中,驗證所需動作是否存在。
  2. Automation Assembler 的範本設計頁面中,移至輸入索引標籤,然後按一下以新增輸入。
  3. 選取類型,然後選取外部來源
  4. 在 [動作] 旁邊,按一下選取按鈕。
  5. 使用 [動作] 搜尋欄位尋找並選取 VMware Aria Automation Orchestrator 動作。
  6. 輸入或選取任何動作參數。

儲存並建立輸入後,該輸入將作為 $dynamicDefault 輸入顯示在雲端範本代碼中。例如:

inputs:
  backupnetwork:
    type: string
    $dynamicDefault: /data/vro-actions/com.insanpaolo/getBackupNetworkVLAN?network={{abcdef123456}}&tenant={{abcdef123456}}
備註: 如果將輸入傳送到的 VMware Aria Automation Orchestrator 工作流程執行時間過長,導致延遲超過 30 秒,則可能會導致 VMware Aria Automation 出現逾時問題。

輸入內容清單

內容 說明
const 與 oneOf 搭配使用。實際值與易記標題相關聯。
預設值 輸入的預先填入值。

預設值必須為正確的類型。請勿輸入單字做為整數的預設值。

說明 輸入的使用者說明文字。
已加密

是否對使用者輸入的輸入進行加密 (true 或 false)。

密碼通常會加密。

此外,還可以建立在多個雲端範本之間可重複使用的加密內容。請參閱密碼 Automation Assembler 內容

列舉 允許值的下拉式功能表。

使用下列範例做為格式指南。

enum:
      - value 1
      - value 2
format 設定輸入的預期格式。例如,(25/04/19) 支援日期-時間。

允許在 Automation Service Broker 自訂表單中使用日期選擇器。

items 宣告陣列中的項目。支援數字、整數、字串、布林值或物件。
maxItems 陣列中可選取的項目數目上限。
maxLength 字串允許的字元數目上限。

例如,若要限制欄位為 25 個字元,請輸入 maxLength: 25

上限 數字或整數的最大允許值。
minItems 陣列中可選取的項目數目下限。
minLength 字串允許的字元數目下限。
下限 數字或整數的最小允許值。
oneOf 允許使用者輸入表單為不太易記的值 (const) 顯示易記名稱 (title)。如果新增此表上面所述的 default 內容,請將該預設值設定為 const 值,而不是標題。

適用於類型字串、整數和數字。

模式 規則運算式語法中的字串輸入允許的字元。

例如,'[a-z]+''[a-z0-9A-Z@#$]+'

properties 宣告物件的 key:value 內容區塊。
readOnly 僅用來提供表單標籤。
title 與 oneOf 搭配使用。const 值的易記名稱。在部署時,標題顯示在使用者輸入表單上。
類型 數字、整數、字串、布林值或物件的資料類型。
重要:

布林值類型會向請求表單新增空白核取方塊。使該方塊保持原樣不會將輸入設定為 False。

若要將輸入設定為 False,使用者必須勾選並清除該方塊。

writeOnly 在表單中隱藏星號後面的按鍵輸入。無法與 enum 搭配使用。顯示為 Automation 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