样书配置
感谢您提供反馈

这篇文章已经过机器翻译.放弃

使用 NetScaler 实例作为数据源

您可以使用托管的 NetScaler 实例作为数据源。 managed-adc 是一种内置数据源类型,可以很容易地用作 ADM 中的数据源。默认情况下,NetScaler 控制台中的每个托管的 NetScaler 实例都是数据源。如果您在创建配置包时需要来自由 NetScaler 控制台管理的现有 NetScaler 的数据,则可以在样书中开始使用这些数据源。

在样书定义中,指定 datum 内置类型参数。因此,您可以在样书中使用数据源类型。样书用户可以选择一个可用于从该源检索数据的数据源。

在不收集的情况下使用内置数据源

parameters: - name: selected-adc label: Select an existing NetScaler type: datum required: true data-source: type: managed-adc

在示例中,该 datum参数用于选择由 ADM 管理的任何 NetScaler 实例。managed-adc 内置数据源允许您从由 NetScaler 控制台管理的任何 NetScaler 实例检索数据。

在样书中,您可以访问所选 NetScaler 实例中的任何配置。而且,您可以在同一 NetScaler 或其他 NetScaler 实例上创建或更新配置时使用该配置;这取决于所选的目标 NetScaler 实例。

从数据源中选择集合

在所选的 NetScaler 实例中,要访问集合,请使用以下表达式:

$parameters.selected-adc.collections.<collection-name>

示例:

$parameters.selected-adc.collections.lbvserver

此表达式返回所选 NetScaler 实例上的 lbvserver 实体列表。例如,您可以遍历此列表以选择满足特定条件的特定 lbvserver

不带收藏夹的样书示例

name: add-vservers-from-managed-adc-instances namespace: com.citrix.adc.stylebooks version: "1.0" schema-version: "1.0" import-stylebooks: - namespace: netscaler.nitro.config prefix: ns version: "10.5" parameters: - name: selected-adc label: Select a NetScaler instance type: datum required: true data-source: type: "managed-adc" components: - name: sslvserver-comp type: ns::sslvserver repeat: $parameters.selected-adc.collections.lbvserver repeat-item: lbvs repeat-condition: $lbvs.attributes.servicetype == "SSL" properties: name: $lbvs.attributes.name ssl2: DISABLED ssl3: DISABLED tls1: DISABLED tls11: ENABLED tls12: ENABLED

配置包 GUI 显示由 NetScaler 控制台管理的 NetScaler 实例,样书用户可以在创建或更新配置包时选择任何 NetScaler。

内置 NetScaler 数据源,无需收集

本样书使用选定的 NetScaler 并对所有 lbvserver 实体进行迭代。它选择 SSL 虚拟服务器并在每个虚拟服务器上设置允许的 SSL 协议版本。

以下表达式允许您遍历 NetScaler 实例中的 lbvserver 实体列表。

repeat: $parameters.selected-adc.collections.lbvserver
  • collections:指的是 NetScaler 实例上的所有实体类型。例如 csvserverlbmonitorservicegroup 等等。

  • lbvserver:指 NetScaler 实例中的负载平衡虚拟服务器实体列表。

将内置数据源与集合一起使用

parameters: - name: selected-lbvserver label: Select an existing lbvserver type: datum required: true data-source: type: managed-adc collection: lbvserver

在此示例中,datum 参数用于允许用户选择 NetScaler 实例和数据源类型 managed-adc 中的特定 lbvserver 实例。

当您在小节中定义集合类型时parameters,样书用户可以从该实例的集合中选择 NetScaler 实例和特定实体。

带集合的内置实例数据源

选择集合的属性

当样书用户选择虚拟服务器时,样书中的以下表达式可以访问所选项目的任何属性。

$parameters.selected-lbvserver.attributes.<attribute-name>

在本示例中,选择 datumlbvserver。因此,您可以访问 NetScaler 实体 lbvserver 的任何属性,例如 nameservicetypeipv46 等。

示例:

$parameters.selected-lbvserver.attributes.ipv46

此表达式检索所选负载平衡虚拟服务器的 IP。有关 NetScaler 实体(集合)及其属性的更多信息,请参见 NetScaler NITRO API 参考文档。

选择收藏列表

除了允许样书用户在托管 NetScaler 实例上选择特定实体外,您还可以访问所选 NetScaler 实例上相同或不同集合中的任何实体。要访问该 NetScaler 实例上的另一个集合,请在该部分中components使用以下表达式:

$parameters.selected-lbvserver.datasource.collections.<collection-name>

示例:

$parameters.selected-lbvserver.datasource.collections.csvserver

此表达式返回所选 NetScaler 实例中的内容交换虚拟服务器列表。

并且,以下表达式返回 lbvserversservicegroups 之间所有绑定的列表:

$parameters.selected-lbvserver.datasource.collections.lbvserver_servicegroup_binding

带有集合的样书示例

以下是演示如何使用托管的 NetScaler 实例作为数据源的样书示例:

--- name: bind-lb-to-servicegroup-using-ADC-as-datasource namespace: com.citrix.adc.stylebooks version: "1.1" display-name: "HTTP/SSL LoadBalancing StyleBook with Service Binding" description: "This stylebook defines a typical Load Balanced Application configuration where we allow the user to select an existing lbvserver on the NetScaler using datum type parameter. Then a servicegroup for the selected lb is created if it does not exist on the NetScaler. Finally, the selected lbvserver is bound to the service " schema-version: "1.0" import-stylebooks: - namespace: netscaler.nitro.config prefix: ns version: "10.5" parameters: - name: selected-vserver label: "Select an Existing VServer" description: "Load Balancing Application Vservers to be bound to service on the ADC" type: datum required: true data-source: type: managed-adc collection: lbvserver - name: services label: Services type: object[] required: true parameters: - name: ip label: IP address type: ipaddress required: true - name: port label: Port type: tcp-port required: true components: - name: servicegroup-discovery-comp type: object repeat: $parameters.selected-vserver.datasource.collections.servicegroup repeat-item: svcgrp repeat-condition: $svcgrp.attributes.servicegroupname == $parameters.selected-vserver.attributes.name + "-svcgrp" properties: servicegroupname: $svcgrp.attributes.servicegroupname - name: servicegroup-creation-if-not-exists-comp type: ns::servicegroup condition: not exists($components.servicegroup-discovery-comp) properties: servicegroupname: $parameters.selected-vserver.attributes.name + "-svcgrp" servicetype: $parameters.selected-vserver.attributes.servicetype - name: servicegroupmember-comp type: ns::servicegroup_servicegroupmember_binding repeat: $parameters.services repeat-item: service properties: servicegroupname: if-then-else($components.servicegroup-discovery-comp, $components.servicegroup-discovery-comp.properties.servicegroupname, $components.servicegroup-creation-if-not-exists-comp.properties.servicegroupname) ip: $service.ip port: $service.port

在本样书中,components 部分检查与 svcgrp 连接的所选负载平衡虚拟服务器名称相匹配的服务组名称。

如果所选负载平衡虚拟服务器的名称为 lbv1,则此样书会检查名称为 lbv1-svcgrp 的服务组。如果找不到,它会创建一个服务组 lbv1-svcgrp 并与 lbv1 虚拟服务器绑定。

以下表达式获取 NetScaler 实例中的服务组列表。

repeat: $parameters.selected-vserver.datasource.collections.servicegroup

在这个表达式中:

  • datasource: 指由 ADM 管理的选定 NetScaler 实例。

  • collections:指的是 NetScaler 实例中的所有实体。

  • servicegroup: 指的是 NetScaler 实例中的服务组。

本内容的正式版本为英文版。部分 Cloud Software Group 文档内容采用了机器翻译,仅供您参考。Cloud Software Group 无法控制机器翻译的内容,这些内容可能包含错误、不准确或不合适的语言。对于从英文原文翻译成任何其他语言的内容的准确性、可靠性、适用性或正确性,或者您的 Cloud Software Group 产品或服务沿用了任何机器翻译的内容,我们均不作任何明示或暗示的保证,并且适用的最终用户许可协议或服务条款或者与 Cloud Software Group 签订的任何其他协议(产品或服务与已进行机器翻译的任何文档保持一致)下的任何保证均不适用。对于因使用机器翻译的内容而引起的任何损害或问题,Cloud Software Group 不承担任何责任。
使用 NetScaler 实例作为数据源