Citrix ADC

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

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

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

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

负载平衡虚拟服务器模板

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

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

注意:

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

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

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

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

例如,创建负载平衡虚拟服务器模板时,可以指定要绑定到从模板创建的虚拟服务器的策略。但是,模板中仅包含绑定信息。绑定的实体不包括在内。如果将实体模板导入到另一个 Citrix ADC 设备,则绑定的实体在导入时必须存在于设备上,才能成功绑定。如果目标设备上不存在绑定实体,则创建实体(已为其配置模板)时不需要任何绑定。如果目标设备上仅存在绑定实体的子集,则这些实体将绑定到从模板创建的实体。 导出负载平衡虚拟服务器的模板时,实体的配置设置将显示在模板中。默认情况下,所有绑定实体都是选择的,但您可以根据需要修改绑定。与不基于现有实体的模板一样,只包括具有约束力的信息,而不包括实体。您可以使用现有配置设置保存模板,也可以使用这些设置作为为模板创建新配置的基础。

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

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

例如,请考虑为绑定到要为其创建模板的负载平衡虚拟服务器的策略配置的以下表达式。表达式计算 HTTP 请求中接受语言标头的值。 HTTP.REQ.HEADER("Accept-Language").CONTAINS("en-us")

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

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

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

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

完成以下过程,使用 Citrix ADC GUI 为负载平衡虚拟服务器模板配置变量

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

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

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

    确认屏幕

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

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

使用 Citrix ADC GUI 修改负载平衡虚拟服务器的步骤

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

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

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

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

    管理模板

  5. 单击关闭

使用 Citrix ADC GUI 上载负载平衡虚拟服务器实体模板的步骤

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

    上传模板

使用 Citrix ADC 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>

部署文件示例

以下是上例中与虚拟服务器关联的部署文件: 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>

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