使用 NetScaler 实例作为数据源

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

在 StyleBook 定义中,指定 数据 内置类型参数。 您可以在样书中使用数据源类型。 样书用户可以选择一个数据源,然后可以使用该数据源检索数据。

使用内置数据源而不进行收集

参数:
  -  名称:selected-adc
    标签:选择一个现有的 NetScaler
    类型:datum
    必需:true
    数据源:
      类型:managed-adc
<!--NeedCopy-->

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

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

从数据源访问集合

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

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

例子:

$parameters.selected-adc.collections.lbvserver
<!--NeedCopy-->

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

不带集合的示例样书

名称:add-vservers-from-managed-adc-instances
命名空间:com.citrix.adc.stylebooks
版本:“1.0”
架构版本:“1.0”

导入样式书:
  -
    命名空间:netscaler.nitro.config
    前缀:ns
    版本:“10.5”

参数:
    -
      名称:selected-adc
      标签:选择一个 NetScaler 实例
      类型:基准
      必需:true
      数据源:
        类型:“managed-adc”

组件:
  -
    名称:sslvserver-comp
    类型:ns::sslvserver
    重复: $parameters.selected-adc.collections.lbvserver
    重复项:lbvs
    重复条件: $lbvs.attributes.servicetype == “SSL”
    属性:
      名称: $lbvs.attributes.name
      ssl2:已禁用
      ssl3:已禁用
      tls1:已禁用
      tls11:已启用
      tls12:已启用
<!--NeedCopy-->

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

内置 NetScaler 数据源,无需收集

此 StyleBook 使用选定的 NetScaler 并遍历所有 lbvserver 实体。 它选择 SSL 虚拟服务器并在每个虚拟服务器上设置允许的 SSL 协议版本。

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

重复: $parameters.selected-adc.collections.lbvserver
<!--NeedCopy-->

使用内置数据源和集合

参数:
  -  名称:selected-lbvserver
    标签:选择一个现有的 lbvserver
    类型:datum
    必需:true
    数据源:
      类型:managed-adc
      集合:lbvserver
<!--NeedCopy-->

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

当您在 参数 部分定义集合类型时,StyleBook 用户可以选择 NetScaler 实例以及该实例上的集合中的特定实体。

内置实例数据源与集合

访问所选项目的属性

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

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

在这个例子中,选定的 数据lbvserver。 因此,您可以访问 NetScaler 实体 lbvserver 的任何属性,例如 nameservicetypeipv46等等。

例子:

$parameters.selected-lbvserver.attributes.ipv46
<!--NeedCopy-->

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

从集合中选择多个项目:

以下参数部分允许 StyleBook 用户选择一个集合中的多个项目。

参数:
  -  名称:selected-lbvservers
    标签:选择现有的 lbvservers
    类型:datum[]
    必需:true
    数据源:
      类型:managed-adc
      集合:lbvserver
<!--NeedCopy-->

在此示例中,datum 参数用于定义数据源数组。 用户可以从单个 NetScaler 实例或跨 NetScaler 实例选择一个或多个 lbvserver。

下面的代码片段描述了访问选定项目及其属性的方式。

组件:
  -  名称:sslvserver-comp
    类型:ns::sslvserver
    重复:
      重复列表: $parameters.selected-lbvservers
      重复项:vserverObj
    属性:
      名称: $vserverObj.attributes.name
      ssl2:已禁用
      ssl3:已禁用
      tls1:已禁用
      tls11:已启用
      tls12:已启用
<!--NeedCopy-->

通过所选项目的引用访问集合

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

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

例子:

$parameters.selected-lbvserver.datasource.collections.csvserver
<!--NeedCopy-->

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

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

$parameters.selected-lbvserver.datasource.collections.lbvserver_servicegroup_binding
<!--NeedCopy-->

带有集合的示例样书

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

名称:bind-lb-to-servicegroup-using-ADC-as-datasource
命名空间:com.citrix.adc.stylebooks
版本:“1.1”
显示名称:“带有服务绑定的 HTTP/SSL 负载平衡样本”
描述:“此样本定义了典型的负载平衡应用程序配置,我们允许用户使用基准类型参数在 NetScaler 上选择现有的 lbvserver。 然后,如果 NetScaler 上不存在所选 lb 的服务组,则会为其创建一个服务组。 最后,将选定的 lbvserver 绑定到服务“
schema-version: "1.0"
import-stylebooks:
  -
    namespace: netscaler.nitro.config
    prefix: ns
    version: "10.5"

parameter:
  -
    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
      集合:lbvserver

组件:
  -
    名称:servicegroup-discovery-comp
    类型:对象
    重复: $parameters.selected-vserver.datasource.collections.servicegroup
    重复项:svcgrp
    重复条件: $svcgrp.attributes.servicegroupname ==  $parameters.selected-vserver.attributes.name + "-svcgrp"
    属性:
      servicegroupname: $svcgrp.attributes.servicegroupname
  -
    名称:servicegroup-creation-if-not-exists-comp
    类型:ns::servicegroup
    条件:不存在($components.servicegroup-discovery-comp)
    属性:
      servicegroupname: $parameters.selected-vserver.attributes.name + "-svcgrp"
      servicetype: $parameters.selected-vserver.attributes.servicetype
    组件: 
      - 
        名称:lbvserver-servicegroup-binding
        类型:ns::lbvserver_servicegroup_binding
        属性: 
          名称: $parameters.selected-vserver.attributes.name
          服务组名称: $parent.properties.servicegroupname
<!--NeedCopy-->

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

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

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

重复: $parameters.selected-vserver.datasource.collections.servicegroup
<!--NeedCopy-->

在这个表达式中:

过滤收集数据:

以下参数部分说明如何在样书定义中指定内置数据源集合的过滤器。 它允许 StyleBook 用户从过滤的集合中选择特定的项目。

参数:
  -  名称:selected-lbvserver
    标签:选择一个现有的 lbvserver
    类型:datum
    必需:true
    数据源:
      类型:managed-adc
      集合:lbvserver
      集合过滤器:
        协议:SSL

<!--NeedCopy-->

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

样书用户选择虚拟服务器后,可以按照上一节所述方式访问所选项目的任何属性。