ADC

用于负载平衡虚拟服务器的实体模板

警告

NetScaler 13.0 版本 82.x 之后不建议使用实体模板功能,作为替代方法,Citrix 建议您使用样式书。有关详细信息,请参阅 样式书 主题。

实体模板是用于在 NetScaler 设备上创建负载平衡虚拟服务器模板的信息集合。它提供了为负载平衡虚拟服务器配置的规范和一组默认值。通过使用定义一组默认值的模板,您可以快速配置多个需要类似配置的虚拟服务器,同时省去几个配置步骤。

您可以通过将负载平衡虚拟服务器详细信息导出到模板文件来创建实体模板。这只能通过 NetScaler GUI 来完成。您可以使用 NetScaler GUI 导出、导入和管理实体模板。您可以与其他管理员共享实体模板并管理保存在您的设备或计算机上的本地模板。您也可以从设备或本地计算机导入实体模板。

在创建模板之前,您应该熟悉负载平衡虚拟服务器的配置。

负载平衡虚拟服务器模板

负载平衡实体模板的创建方式与创建 NetScaler 应用程序模板的方式相同。将负载平衡虚拟服务器导出到模板文件时,会自动创建以下两个文件:

  • 负载平衡虚拟服务器模板文件。包含存储为负载平衡虚拟服务器配置的参数值的 XML 元素。该文件还包含用于存储有关绑定策略信息的 XML 元素。
  • 部署文件。包含存储特定部署信息(例如服务、服务组和配置变量)的 XML 元素。 在模板和部署文件中,每个配置信息单元都封装在适用于该单元类型的特定 XML 元素中。例如,负载平衡方法参数 LbMethod 封装在 <lbmethod></lbmethod> 标签中。

注意:

导出负载平衡虚拟服务器后,可以添加元素、删除元素和修改现有元素,然后将配置信息导入 NetScaler 设备。

负载平衡虚拟服务器模板的工作原理

为负载平衡虚拟服务器创建模板时,需要为服务器指定默认值。您可以指定哪些值必须为只读值、哪些值不得显示以及用户可以配置哪些值。您还可以配置构成模板导入向导的页面。您提供的所有信息和设置都存储在模板文件中。 当用户将模板导入 NetScaler 设备时,GUI 会引导用户浏览您为该模板配置的各个页面。GUI 显示只读参数值并提示用户为可配置参数指定值。用户按照说明操作后,设备将创建具有配置值的实体。 您可以从“流量管理”节点为负载平衡虚拟服务器创建或修改实体模板。 要将虚拟服务器详细信息导出到模板,必须为模板指定以下选项和设置:

  • 参数的默认值。
  • 默认值是否对用户可见。
  • 用户是否可以更改默认值。
  • 实体导入向导中的页数,包括页面名称、文本和可用参数。
  • 必须绑定到为其创建模板的实体的实体。

例如,在创建负载平衡虚拟服务器模板时,可以指定要绑定到通过该模板创建的虚拟服务器的策略。但是,模板中仅包含绑定信息。绑定实体不包括在内。如果将实体模板导入到其他 NetScaler 设备,则绑定实体在导入时必须存在于设备上,绑定才能成功。如果目标设备上不存在任何绑定实体,则创建实体(为其配置了模板),而不进行任何绑定。如果目标设备上仅存在一部分绑定实体,则它们会绑定到根据模板创建的实体。 导出负载平衡虚拟服务器的模板时,实体的配置设置会出现在模板中。默认情况下,所有绑定实体均处于选中状态,但您可以根据需要修改绑定。与不基于现有实体的模板一样,仅包含绑定信息,不包括实体。您可以将模板与现有配置设置一起保存,也可以使用这些设置作为为模板创建新配置的基础。

在负载平衡虚拟服务器模板中配置变量

负载平衡虚拟服务器模板支持在配置的负载平衡参数以及绑定策略和操作中声明变量。声明变量的功能使您可以将预先配置的值替换为适合您要将模板导入到的环境的值。

例如,假设为绑定到负载平衡虚拟服务器的策略配置了以下表达式,您正在为其创建模板。该表达式对 HTTP 请求中接受语言标头的值进行评估。 HTTP.REQ.HEADER("Accept-Language").CONTAINS("en-us")

如果您希望在导入时可以配置标头的值,则可以将字符串 en-us 指定为变量。

创建变量后,可以执行以下操作:

  • 为现有变量分配更多字符串。为字符串创建变量后,可以选择并将相同或不同表达式的其他部分分配给该变量。分配给变量的字符串不必相同。在导入时,分配给变量的所有字符串都将替换为您提供的值。
  • 查看分配给变量的一个或多个字符串。
  • 查看使用该变量的所有实体和参数的列表

在负载平衡虚拟服务器模板中配置变量

完成以下步骤,使用 NetScaler GUI 为负载平衡虚拟服务器模板配置变量

  1. 导航到“流量管理”>“负载平衡”>“虚拟服务器
  2. 在详细信息窗格中,右键单击要导出到模板文件的虚拟服务器,然后单击“添加”。
  3. 在“创建负载平衡虚拟服务器”页中,设置虚拟服务器参数。有关配置负载平衡虚拟服务器的详细信息,请参 阅负载平衡的工作原理
  4. 设置负载平衡虚拟服务器的参数后,单击“完成”。

    导出为负载平衡虚拟服务器模板

  5. 单击顶部的“导出为模板”链接,将服务器详细信息导出为模板文件。
  6. 创建负载平衡模板 页面中,输入模板设置。
  7. 单击 Done(完成)。

    确认屏幕

修改负载平衡虚拟服务器模板

您只能修改为模板配置的参数、绑定和页面。创建模板时指定的模板的名称和位置无法更改。NetScaler 设备不为您提供修改负载平衡虚拟服务器模板的选项。

使用 NetScaler GUI 修改负载平衡虚拟服务器

  1. 导航到 流量管理 > 负载平衡 > 虚拟服务器
  2. 负载平衡虚拟服务器 页面中,修改实体参数。
  3. 单击 Done(完成)。
  4. 单击“作为模板导出”链接。
  5. 修改后的更改现在可在负载平衡虚拟服务器模板文件中找到。
  6. 在“导出的负载平衡模板”页面中,单击“完成”。

管理负载平衡虚拟服务器模板

您可以使用 NetScaler GUI 来组织负载平衡虚拟服务器模板文件和部署文件。

  1. 导航到流量管理 > 负载平衡 > 虚拟服务器
  2. 在“虚拟服务器”页面中,选择“管理模板”操作
  3. 在“负载平衡模板”页面中,单击“模板文件”选项卡。
  4. 在“模板文件”选项卡页面中,您可以将模板从设备模板文件夹上载或下载到设备模板文件夹。

    管理模板

  5. 单击关闭

使用 NetScaler GUI 上载负载平衡虚拟服务器实体模板

  1. 导航到流量管理 > 负载平衡 > 虚拟服务器
  2. 在“虚拟服务器”页面中,单击“选择操作”,然后选择“管理模板”。
  3. 在“负载平衡模板”页中,单击“模板文件”选项卡。
  4. 在“模板文件”选项卡页中,单击“上载”以上载模板。
  5. 单击关闭

    上载模板

使用 NetScaler GUI 下载负载平衡虚拟服务器实体模板

  1. 导航到流量管理 > 负载平衡 > 虚拟服务器
  2. 在“虚拟服务器”页面中,单击“选择操作”,然后选择“管理模板”。
  3. 在“负载平衡模板”页面中,单击“模板文件”选项卡。
  4. 在“模板文件”选项卡页中,选择一个模板文件,然后单击“下载”。
  5. 单击关闭。

    下载模板

负载平衡虚拟服务器模板和部署模板的示例

以下是从名为“LbVIP”的负载平衡虚拟服务器创建的模板文件的示例:

COPY

<?xml version="1.0" encoding="UTF-8" ?>
  <template>
    <template_info>
      <entity_name>Lbvip</entity_name>
      <version_major>10</version_major>
      <version_minor>0</version_minor>
      <build_number>40.406</build_number>
    </template_info>
    <entitytemplate>
      <lbvserver_list>
        <lbvserver>
          <name>Lbvip</name>
          <servicetype>HTTP</servicetype>
          <ipv46>0.0.0.0</ipv46>
          <ipmask>*</ipmask>
          <port>0</port>
          <range>1</range>
          <persistencetype>NONE</persistencetype>
          <timeout>2</timeout>
          <persistencebackup>NONE</persistencebackup>
          <backuppersistencetimeout>2</backuppersistencetimeout>
          <lbmethod>LEASTCONNECTION</lbmethod>
          <persistmask>255.255.255.255</persistmask>
          <v6persistmasklen>128</v6persistmasklen>
          <pq>OFF</pq>
          <sc>OFF</sc>
          <m>IP</m>
          <datalength>0</datalength>
          <dataoffset>0</dataoffset>
          <sessionless>DISABLED</sessionless>
          <state>ENABLED</state>
          <connfailover>DISABLED</connfailover>
          <clttimeout>180</clttimeout>
          <somethod>NONE</somethod>
          <sopersistence>DISABLED</sopersistence>
          <sopersistencetimeout>2</sopersistencetimeout>
          <redirectportrewrite>DISABLED</redirectportrewrite>
          <downstateflush>DISABLED</downstateflush>
          <gt2gb>DISABLED</gt2gb>
          <ipmapping>0.0.0.0</ipmapping>
          <disableprimaryondown>DISABLED</disableprimaryondown>
          <insertvserveripport>OFF</insertvserveripport>
          <authentication>OFF</authentication>
          <authn401>OFF</authn401>
          <push>DISABLED</push>
          <pushlabel>none</pushlabel>
          <l2conn>OFF</l2conn>
          <appflowlog>DISABLED</appflowlog>
          <icmpvsrresponse>PASSIVE</icmpvsrresponse>
          <lbvserver_cmppolicy_binding_list>
            <lbvserver_cmppolicy_binding>
              <name>Lbvip</name>
              <policyname>NOPOLICY-COMPRESSION</policyname>
              <priority>100</priority>
              <gotopriorityexpression>END</gotopriorityexpression>
              <bindpoint>REQUEST</bindpoint>
            </lbvserver_cmppolicy_binding>
          </lbvserver_cmppolicy_binding_list>
        </lbvserver>
      </lbvserver_list>
    </entitytemplate>
  </template>
<!--NeedCopy-->

部署文件示例

以下是前面的示例中与虚拟服务器关联的部署文件: COPY

<?xml version="1.0" encoding="UTF-8" ?>
  <template_deployment>
    <template_info>
      <entity_name>Lbvip</entity_name>
      <version_major>10</version_major>
      <version_minor>0</version_minor>
      <build_number>40.406</build_number>
    </template_info>
    <service_list>
      <service>
      <ip>1.2.3.4</ip>
      <port>80</port>
      <servicetype>HTTP</servicetype>
      </service>
    </service_list>
    <servicegroup_list>
      <servicegroup>
        <name>svcgrp</name>
        <servicetype>HTTP</servicetype>
        <servicegroup_servicegroupmember_binding_list>
          <servicegroup_servicegroupmember_binding>
            <ip>1.2.3.90</ip>
            <port>80</port>
          </servicegroup_servicegroupmember_binding>
        <servicegroup_servicegroupmember_binding>
          <ip>1.2.8.0</ip>
          <port>80</port>
        </servicegroup_servicegroupmember_binding>
        <servicegroup_servicegroupmember_binding>
          <ip>1.2.8.1</ip>
          <port>80</port>
        </servicegroup_servicegroupmember_binding>
        <servicegroup_servicegroupmember_binding>
          <ip>1.2.9.0</ip>
          <port>80</port>
        </servicegroup_servicegroupmember_binding>
      </servicegroup_servicegroupmember_binding_list>
    </servicegroup>
  </servicegroup_list>
</template_deployment>

<!--NeedCopy-->
用于负载平衡虚拟服务器的实体模板