参数
在此部分可以定义样本中用于创建配置所需的所有参数。它描述样书接收的输入。尽管此部分是可选的,但大多数样书可能需要一个。您可以考虑参数部分为使用样书在 NetScaler 实例上创建配置的用户定义字段。
将样书导入 NetScaler ADM 并使用它创建配置时,GUI 使用样书的这一部分来显示表单。此表单接受定义的参数值的输入。
以下部分介绍了需要为本节中的每个参数指定的属性:
‘name’
要定义的参数的名称。可以指定字母数字名称。
名称必须以字母表开头,并且可以包含更多的字母、数字、连字符 (-) 或下划线 (_)。
在编写样书时,您可以使用此“name”属性通过使用表示法 $ 参数来引用其他部分中的参数。<name>。
强制性? 是
‘label’
在 ADM GUI 中显示为此参数的名称的字符串。
强制性? 否
‘description’
说明参数用途的帮助字符串。当用户单击此参数的帮助图标时,ADM GUI 会显示此文本。
强制性? 否
‘type’
这些参数可以接收的值类型。参数可以是以 下内置类型之一:
-
string:字符数组。如果未指定长度,则字符串值可以接收任何数量的字符。但是,可以使用 min-length 和 max-length 属性限制字符串类型的长度。
-
number
:一个整数。可以使用 min-value 和 max-value 属性指定此类型可以接收的最小数和最大数。 -
boolean
:可以是真的也可以是假的。YAML 将所有文字视为布尔值(例如,是或否)。 -
ipaddress
:表示有效的 IPv4 或 IPv6 地址的字符串。 -
ipnetwork
: 它有两个部分。第一部分是 IP 地址,第二部分是网络掩码。网络掩码由网络掩码长度 (
netmask-len
) 或网络掩码 IP 地址 (netmask_ip
) 组成。IPv6 地址的子网掩码长度是介于 0-32 到 0-128 之间的整数。它用于确定网络中的 IP 地址计数。从 NetScaler ADM GUI 创建或更新配置包时,您可以执行以下操作之一:
- 启用网络掩码长度并输入 IP 地址和网络掩码长度
- 禁用网络掩码长度并输入 IP 地址和网络掩码 IP 地址
在 API 中,网络掩码长度和网络掩码 IP 地址作为单个值提供,如以下示例所示:
示例:
Content-Type: application/json Accept: application/json { “configpack”: { “stylebook”: { “namespace”: “com.example.stylebook”, “version”:“1.0”, “name”: “ipnetwork-example”, .. }, “parameters”: { “name: “test-app”, “virtual-ip”: “212.100.30.0/255.255.255.0”, }, “targets”: [ ] } } <!--NeedCopy-->
-
tcp-port
:介于 0 到 65535 之间的数字,表示 TCP 或 UDP 端口。 -
password
:表示不透明/密码字符串值。当 ADM GUI 显示此参数的值时,它将显示为星号 (*****)。 -
certfile
:表示证书文件。使用 ADM GUI 创建样书配置时,此值允许您直接从本地系统上载文件。上载的证书文件存储在 ADM 的/var/mps/tenants/\<tenant_path>/ns_ssl_certs
目录中。证书文件将添加到 ADM 管理的证书列表中。
-
keyfile
:表示证书密钥文件。使用 ADM GUI 创建样书配置时,此值允许您直接从本地系统上载文件。上载的证书文件存储在 ADM 的/var/mps/tenants/\<tenant_path>/ns_ssl_keys
目录中。证书密钥文件将添加到 ADM 管理的证书密钥列表中。
-
file
:代表一个文件。 -
object
:当您想要将多个相关参数分组到父元素下时,将使用此类型。将类型的父参数指定为“对象”。类型为“object”的参数可以有嵌套的“parameters”部分以描述其包含的参数。 -
another StyleBook
:当您使用此类型的参数时,此参数期望其值以表示其类型的样书中定义的参数的形式。
参数也可以包含具有类型列表的 type
。为此,请在文字末尾添加 []
。例如,如果 type
属性为 string[]
,则此参数将字符串列表作为输入。可以在使用此样书创建配置时为此参数提供一个、两个或多个字符串。
强制性? 是
‘network’
对于 type: ipaddress
,您可以指定从 ADM IPAM 网络自动分配 IP 地址的 network
属性。
创建样书配置时,ADM 会从 network
属性中自动分配 IP 地址。
示例:
name: virtual-ip
label: "Load Balancer IP Address"
type: ipaddress
network: "network-1"
required: true
<!--NeedCopy-->
在此示例中, virtual-ip
字段自动分配来自 network-1
的 IP 地址。删除配置后,IP 地址将释放回网络。
‘dynamic-allocation’
dynamic-allocation
属性将添加到 type:ipaddress
的参数定义中。使用此属性动态列出 ADM IPAM 网络。此属性可以采用 true
或 false
作为输入。对于 type: ipaddress
,指定 dynamic-allocation: true
属性以动态列出 ADM 中的 ADM IPAM 网络。在配置包创建窗体中,您可以执行以下操作:
-
从列表中选择所需的 IPAM 网络。
-
指定要从所选 IPAM 网络分配的 IP 地址。
如果未指定 IP 地址,ADM 将自动分配来自所选 IPAM 网络的 IP 地址。
示例:
-
name: virtual-ip
label: "Load Balancer IP Address"
type: ipaddress
dynamic-allocation: true
required: true
<!--NeedCopy-->
在此示例中, virtual-ip
字段列出了 ADM 中的 ADM IPAM 网络。从列表中选择一个网络以从网络中自动分配 IP 地址。删除配置后,IP 地址将释放回网络。
‘key’
指定 true 或 false 指示此参数是否是样书的主要参数。
样书只能有一个定义为“key”参数的参数。
当您从同一样书(在相同或不同的 ADC 实例上)创建 不同的配置时,每个配置都有此 参数的不同/唯一值。
默认值为 false。
强制性? 否
‘required’
指定 true 或 false 指示参数是必需的还是可选的。如果 设置为 true,则该参数是必需的,用户在创建配置时必须为此 参数提供值。
ADM GUI 强制用户为此参数提供有效值。
默认值为 false。
强制性? 否
‘allowed-values’
类型设置为“string”时,此属性用于定义参数的有效值列表。
从 ADM GUI 创建配置时,系统会提示用户从此列表中选择参数值。
注意
如果要将列表值显示为单选选项,请设置
layout
属性。
示例 1:
-
name: ipaddress
type: string
allowed-values:
- SOURCEIP
- DEST IP
- NONE
<!--NeedCopy-->
示例 2:
-
name: TCP Port
type: tcp-port
allowed-values:
- 80
- 81
- 8080
<!--NeedCopy-->
示例 3:
tcp-ports
的列表,其中列表的每个元素只能在 allowed-values
中指定的值。
-
name: tcpports
type: tcp-port[]
allowed-values:
- 80
- 81
- 8080
- 8081
<!--NeedCopy-->
强制性? 否
‘default’
此属性用于为可选参数指定默认值。当用户在未指定值的情况下创建配置时,将使用默认值。
如果满足以下条件,则参数不具任何值:
-
该参数没有默认值。
-
用户没有为参数提供值。
示例 1:
-
name: timeout
type: number
default: 20
<!--NeedCopy-->
示例 2:
要列出参数的默认值,请执行以下操作:
-
name: protocols
type: string[]
default:
- TCP
- UDP
- IP
<!--NeedCopy-->
示例 3:
-
name: timeout
type: number
default: 20
<!--NeedCopy-->
示例 4:
-
name: tcpport
type: tcp-port
default: 20
<!--NeedCopy-->
强制性? 否
‘pattern’
当参数的类型为“string 时,使用此属性定义此 参数的有效值的模式(正则表达式)。
示例:
-
name: appname
type: string
pattern: "[a-z]+"
<!--NeedCopy-->
强制性? 否
‘min-value’
使用此属性可定义 number
或 tcp-port
类型参数的最小值。
示例:
-
name: audio-port
type: tcp-port
min-value: 5000
<!--NeedCopy-->
min-value
数字可能是负数。但是, min-value
(对于 tcp-port
)必须是正数。
强制性? 否
‘max-value’
使用此属性可定义类型 number
或
tcp-port
的参数的最大值。
确保最大值大于最小值(如果已定义)。
示例:
-
name: audio-port
type: tcp-port
min-value: 5000
max-value: 15000
<!--NeedCopy-->
强制性? 否
‘min-length’
使用此属性可定义 类型为“string”的参数所接受的值的最小长度。
确保定义为值的字符的最小长度大于或等于零。
示例:
-
name: appname
type: string
min-length: 3
<!--NeedCopy-->
强制性? 否
‘max-length’
使用此属性可以定义 类型为“string 的参数所接受的值的最大长度。
确保值的最大长度大于或等于在 min-length
中定义的字符的长度。
示例:
-
name: appname
type: string
max-length: 64
<!--NeedCopy-->
强制性? 否
‘min-items’
此属性用于定义列表参数中的最小项目数。
确保最小商品数量大于或等于零。
示例:
-
name: server-ips
type: ipaddress[]
min-items: 2
<!--NeedCopy-->
强制性? 否
‘max-items’
使用此属性可定义作为 列表的参数中的最大项数。
确保最大商品数量大于最小商品数(如果已定义)。
示例:
-
name: server-ips
type: ipaddress[]
min-items: 2
max-items: 250
<!--NeedCopy-->
强制性? 否
‘Gui’
使用此属性可在 ADM GUI 中自定义参数的布局。
强制性? 否
‘columns’
此属性是 gui
属性的子属性。使用此属性可定义要在 ADM GUI 中显示 type: object[]
参数的列数。
强制性? 否
‘updatable’
此属性是 gui
属性的子属性。使用此属性可指定在创建配置后是否可以更新参数。仅在字符串、布尔值或数字等简单参数类型上设置此属性。
如果该值设置为 false
,则在更新配置时,参数字段将显示为灰色。
强制性? 否
‘collapse_pane’
此属性是 gui
属性的子属性。使用此属性可指定定义此对象参数布局的窗格是否可折叠。
如果值设置为 true,则用户可以展开或折叠此父参数下方的子参数。
示例:
gui:
collapse_pane: true
columns: 2
<!--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-->
下面的示例定义前面的部分中说明的所有列表属性和值:
-
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
<!--NeedCopy-->
‘layout’
此属性是 gui
属性的子属性。使用此属性可以将列表值显示为单选按钮。在样书定义的参数部分中将 layout
属性设置为 radio
。它适用于具有 allowed-values
属性的参数。创建配置包时,ADM GUI 将列表中的值显示为 allowed-values
单选按钮。
示例:
-
gui:
layout: radio
allowed-values:
- One
- Two
- Three
<!--NeedCopy-->
“一”、“二”和“三”值在 ADM GUI 中显示为单选按钮。
‘dependent-parameters’
此属性是 gui
属性的子属性。它根据在另一个参数中指定的值动态控制参数的外观或其初始值在样书配置窗体中。
在控制参数在表单上的行为的源参数上指定此属性。您可以包含多个控制其他参数的条件。例如,源参数 protocol
可以具有依赖参数 certificate
,该参数仅在 protocol
参数值为 SSL
时才会显示。
每个条件都可以具有以下属性:
-
target-parameter:指定此条件适用的目标参数。
-
matching-values:指定触发操作的源参数的值列表。
-
action:对目标参数指定以下操作之一:
-
read-only
:该参数为只读。 -
show
:如果参数被隐藏,则该参数将显示在窗体中。 -
hide
:该参数将从表单中删除。 -
set-value
:参数值被设置为值属性中指定的值。
-
-
value:如果操作为
set-value
,则为目标参数的值。
当用户输入与源参数上的指定值匹配时,目标参数的外观或值将根据指定的操作而发生变化。
示例:
-
name: lb-virtual-port
label: "Load Balanced App Virtual Port"
description: "TCP port representing the Load Balanced application"
type: tcp-port
gui:
updatable: false
dependent-parameters:
-
matching-values:
- 80
target-parameter: $parameters.lb-service-type
action: set-value
allowed-values:
- HTTP
- TCP
- UDP
default: 80
<!--NeedCopy-->
在此示例中,依赖参数在 lb-virtual-port
参数(源参数)下指定。
当源参数值设置为 80
时,lb-service-type
参数将触发 set-value
操作。因此,允许用户选择以下选项之一:
- HTTP
- TCP
- UDP