Application Delivery Management

参数

在此部分可以定义样本中用于创建配置所需的所有参数。它描述样本接收的输入。尽管这是一个可选部分,但大多数样书可能需要一个。您可以考虑参数部分来定义希望用户在使用样本在 Citrix ADC 实例上创建配置时回答的问题。

当您将样本导入 Citrix ADM 并使用它创建配置时,GUI 会使用样本的此部分显示一个表单,该表单接收已定义的参数值的输入。

以下部分介绍了需要为本节中的每个参数指定的属性:

name

要定义的参数的名称。可以指定字母数字名称。

名称必须以字母开头,可以包括其他字母、数字、连字符 (-) 或下划线 (_)。

请注意,编写样书时,可以通过采用表示法 $parameters.<name> 使用此“name”属性在其他部分中引用该参数。

强制性? 是

label

在 ADM GUI 中显示为此参数的名称的字符串。

强制性? 否

description

说明参数用途的帮助字符串。当用户单击此参数的帮助图标时,ADM GUI 会显示此文本。

强制性? 否

type

这些参数可以接收的值类型。参数可以是以 下内置类型之一:

  • string:字符数组。如果未指定长度,则字符串值可以接收任何数量的字符。但是,可以使用 min-length 和 max-length 属性限制字符串类型的长度。

  • number:整数数字。可以使用 min-value 和 max-value 属性指定此类型可以接收的最小数和最大数。

  • boolean:可以为 true 或 false。另外请注意,所有文字都被 YAML 视为布尔值(例如 Yes 或 No)。

  • ipaddress:表示有效的 IPv4 或 IPv6 地址的字符串。

  • tcp-port:表示 TCP 或 UDP 端口的 0 到 65535 之间的数字。

  • password:表示不透明/机密字符串值。当 Citrix ADM GUI 显示此参数的值时,它将显示为星号 (*****)。

  • certfile:表示证书文件。这允许您在使用 ADM GUI 创建样书配置时直接从本地系统上载文件。上载的证书文件存储在 /var/mps/tenants/ 目录中ADM 中的 /ns_ssl_certs。

    证书文件将被添加到 ADM 管理的证书列表中。

  • keyfile:表示证书密钥文件。这允许您在使用 Citrix ADM GUI 创建样书配置时直接从本地系统上载文件。上载的证书文件存储在 /var/mps/tenants/ 目录中Citrix ADM 中的 /ns_ssl_keys。

    证书密钥文件将添加到 Citrix ADM 管理的证书密钥列表中。

  • file:表示文件。

  • object:要将多个相关参数分组在一个父元素下时使用此类型。必须将父参数的类型指定为“object”。类型为“object”的参数可以有嵌套的“parameters”部分以描述其包含的参数。

  • 另一个样本:当您使用此类型的参数时,此参数期望其值采用样本中定义的参数的形式,表示其类型。

通过在类型末尾添加“[]”,参 数的类型也可以是上面列出的任何类型的列表。例如,如果 type 属性是 string [],则此 参数将字符串列表作为输入。在从此样本创建配置时,您可以为 此参数提供一个、两个或多个字符串。

强制性? 是

key

指定 true 或 false 指示此参数是否是样本的主要参数。

样书只能有一个定义为“key”参数的参数。

当您从同一样书(在相同或不同的 Citrix ADC 实例上)创建不同的配置时,每个配置对此 参数具有不同/唯一值。

默认值为 false。

强制性? 否

必需

指定 true 或 false 指示参数是必需的还是可选的。如果 设置为 true,则该参数是必需的,用户在创建配置时必须为此 参数提供值。

Citrix ADM GUI 强制用户为此参数提供有效值。

默认值为 false。

强制性? 否

注意:

如果参数具有 type: objectrequired: false,则不计算此参数的子参数。

如果希望子参数的默认值生效,请按如下方式为主参数设置 required: true

    type: object
    required: true
    gui:
      collapse_pane: true
<!--NeedCopy-->

折叠se_pane 属性显示对象及其子参数在 UI 中折叠,除非用户展开窗格。

allowed-values

类型设置为“string”时,此属性用于定义参数的有效值列表。

从 Citrix ADM GUI 创建配置时,系统会提示用户从此列表中选择一个参数值。

示例 1

name:ipaddress

type:string

预定值:

  • SOURCEIP
  • 最重要的 IP
  • NONE(无)

示例 2

name: TCP Port

type:tcp-port

预定值:

  • 80
  • 81
  • 8080

示例 3

(tcp-port 列表,其中列表的每个元素只能在允许值中 指定值)

name: tcpports

type: tcp-port[]

预定值:

  • 80
  • 81
  • 8080
  • 8081

强制性? 否

default

此属性用于为可选参数指定默认值。在创建配 置时,如果用户未指定值,则使用默认值。

从 Citrix ADM GUI 创建配置时,如果用户没有为没有默认值的参数 提供值,则不会 为该参数设置任何值。

示例 1

name: timeout

type: number

def ault: 20

示例 2

(其中,参数的默认值是值列表):

name: protocols

type: string[]

默认值:

  • TCP
  • UDP
  • IP

示例 3

name: timeout

type: number

default: 20

示例 4

name: tcpport

type:tcp-port

default: 20

强制性? 否

pattern

当参数的类型为“string 时,使用此属性定义此 参数的有效值的模式(正则表达式)。

示例

name: appname

type: string

pattern: “[a-z]+”

强制性? 否

min-value

此属性用于定义类型为“number”或“tcp-port”的参数的最小值。

示例

name: audio-port

type: tcp-port

min-value: 5000

数字的最小值可以为负,但 tcp 端口的最小值不应为 负值。

强制性? 否

max-value

使用此属性定义类型为“数字”或 “tcp 端口”的参数的最大值。

如果已定义,最大值应大于最小值。

示例

name: audio-port

type: tcp-port

min-value: 5000

max-value: 15000

强制性? 否

min-length

使用此属性可定义 类型为“string”的参数所接受的值的最小长度。

定义为值的字符的最小长度应大于或 等于零。

示例

name: appname

type: string

min-length: 3

强制性? 否

max-length

使用此属性可以定义 类型为“string 的参数所接受的值的最大长度。

值的最大长度应大于或等于以最小长 度定义的字符长度。

示例

name: appname

type: string

max-length: 64

强制性? 否

min-items

使用此属性定义列表参数中的最小项目 数。

最小项目数应大于或等于零。

示例

name: server-ips

type: ipaddress[]

min-items: 2

强制性? 否

max-items

使用此属性可定义作为 列表的参数中的最大项数。

如果已定义,最大项目数应大于最小项目数。

示例

name: server-ips

type: ipaddress[]

min-items: 2

max-items: 250

强制性? 否

gui

使用此属性在Citrix ADM GUI 中自定义“对象”类型的 参数的布局。

强制性? 否

columns

这是 gui 属性的子属性。使用它来定义要在 Citrix ADM GUI 中显示的列数。

强制性? 否

updatable

这是 gui 属性的子属性。使用此选项指定是否 可以在创建配置后更新参数。

如果值设置为 false,则更新配置时参数字段灰显。

强制性? 否

collapse_pane

这是 gui 属性的子属性。使用此选项可指定定 义此对象参数布局的窗格是否可折叠。

如果值设置为 true,则用户可以展开或折叠此父参数下方的子参数。

示例

    gui:

     collapse_pane: true

     columns: 2

     updatable: false
<!--NeedCopy-->

完整的 parameters 部分示例:

parameters:

   -

      name: name

      label: Name

      description: Name of the application

      type: string

      required: true

       -

         name: ip

         label: IP Address

         description: The virtual IP address used for this application

         type: ipaddress

         required: true

      -

         name: svc-servers

         label: Servers

         type: object[]

         required: true

         parameters:

            -

               name: svc-ip

               label: Server IP

               description: The IP address of the server

               type: ipaddress

               required: true

                -

                  name: svc-port

                  label: Server Port

                  description: The TCP port of the server

                  type: tcp-port

                  default: 80

      -

          name: lb-alg

          label: LoadBalancing Algorithm

          type: string

          allowed-values:

            - ROUNDROBIN

            - LEASTCONNECTION

          default: ROUNDROBIN

      -

          name: enable-healthcheck

          label: Enable HealthCheck?

          type: boolean

          default: true
<!--NeedCopy-->

下面的示例定义前面的部分中说明的所有列表属性和值:

```YAML    name: features-list

   type: string[]**

   min-length: 1

   max-length: 3

   min-items: 1

   max-items: 3

   pattern: “[A-Z]+”

    allowed-values:

     - SP

     - LB

     - CS

     default:

      - LB

参数