Application Delivery Management

将样书的配置包迁移到另一个样书

在 Citrix Application Delivery Management (ADM) 中,配置包始终绑定到从中创建配置包的样书。对配置包的任何更新只能通过配置包绑定到的样书来完成。Citrix ADM 现在允许您将现有配置包迁移到新的样书。新的样书可以是绑定到配置包的当前样书的更原始版本。或者,您也可以将配置包迁移到完全不同的样书中。

例如,您创建了一个名为 exam-lb的样书。此样书用于在 Citrix ADC 实例上部署基本负载平衡器配置。您在 Citrix ADC 实例上通过此样书创建了配置包 CP1。稍后,您意识到样书不包含监视配置。所以,您现在创建了一个名为 example-lb-mon 的样书。此样书具有与 exam-lb 样书相同的负载平衡器配置,但增加了配置监视器的功能。

现在,您想更新在配置包 CP1 中创建的现有配置以添加一些监视器。以前,您必须删除配置包 CP1,然后从新的样书中创建配置包 CP2 才能将监视器添加到配置中。删除 CP1 会导致删除在一个或多个 Citrix ADC 实例上的配置包 CP1 中创建的所有配置。之前,您必须通过为所有参数键入值,通过新的样书重新创建新的配置包。

相反,您现在可以将现有配置包 CP1 迁移到新的示例-lb-mon 样书。您的新样书可以配置显示器监视器的详细信息。只有那些与监视器相关的配置对象才会添加到部署配置包的 Citrix ADC 实例中。您现在只需提供显示器的详细信息。在未更改的 Citrix ADC 实例上部署的现有配置不受影响。

迁移配置包

将使用 example-lb 样书创建的配置包迁移到示例-lb-mon 样书

  1. 在 Citrix ADM 中,导航到 应用程序 > 配置配置页面显示系统中存在的所有配置包。

  2. 向下滚动以查找先前创建的 example-lb 配置包,然后单击迁移 Configpack

    本地化后的图片

  3. 将打开“选择要迁移的目标样书”页面,其中列出了 Citrix ADM 中可用的所有样书。向下滚动找到 example-lb-mon 样书,然后单击选择样书。您也可以通过输入 example-lb-mon 来搜索样书。

    本地化后的图片

    如果您从一个样书迁移到另一个样书,则两个样书中的所有参数可能不具有相同的结构。如果参数结构相似,则先前的值将自动保留在参数字段中。新样书中的一些参数可能是新的,或者它们的结构可能发生了变化。在这种情况下,必须手动填写样书参数的值。例如,下图显示了 example-lb样书的参数。

    本地化后的图片

    下图显示了将配置包迁移到 example-lb-mon 样书后的参数。

    本地化后的图片

    在这种情况下,您可以看到样书保留了基本负载平衡器配置的旧值。但是,必须手动键入监视器参数的值。

  4. 键入用于在实例上创建监视器的新参数的值。

  5. 在“目标实例”下,单击并选择要运行配置的 Citrix ADC 实例的 IP 地址。请注意,您可以根据需要指定任意数量的目标实例,在多个 Citrix ADC 上部署配置。

  6. 单击试运行对象页面显示将在 Citrix ADC 实例中新建、修改或移除的对象。

  7. 单击 创建 可创建或更新所选实例的配置。如果目标实例是新的,则会创建配置包。否则,将更新实例上部署的现有配置。

    注意

    您也可以单击刷新图标添加最近发现的 Citrix ADC 实例。因此,这些实例可立即在此窗口的实例列表中找到。刷新图标当前仅在 Citrix ADM 上可用。

您还可以将配置包从一个版本的样书迁移到下一个版本。在这里,您可能还必须键入新版本中存在的任何新必需参数的值。您还可以将配置包迁移到旧版本的样书。在这种情况下,将删除旧样书中不存在的额外参数。对象页面显示从配置中移除的任何对象。

成功迁移后,ConfigPack 将绑定到新的样书。

本地化后的图片

您可以看到配置包的名称和配置包 ID 与之前相同。但是 Citrix ADM 将样书名称更新为 样书名称从样书 lb 。

构建您的样书

下面提供了示 例-lb样书的完整内容供您参考:

name: example-lb
namespace: examples.stylebooks
version: "1.0"
display-name: Basic Load Balancer App
description: This is an example StyleBook that creates a load balancer application
schema-version: "1.0"
import-stylebooks:
  -
    namespace: com.citrix.adc.stylebooks
    prefix: stlb
    version: "1.0"
parameters-default-sources:
  - stlb::lb
components:
  -
    name: lb-comp
    type: stlb::lb
    description: Uses the default lb StyleBook to build the typical lb configuration objects
    properties-default-sources:
      - $parameters
<!--NeedCopy-->

例 lb-mon 样书的全部内容如下,供您参考:

name: example-lb-mon
namespace: examples.stylebooks
version: "1.0"
description: This is an example StyleBook that creates a load balancer application with monitors
display-name: Basic Load Balancer App with Monitors
schema-version: "1.0"
import-stylebooks:
  -
    namespace: netscaler.nitro.config
    prefix: ns
    version: "10.5"
  -
    namespace: com.citrix.adc.stylebooks
    prefix: stlb
    version: "1.0"
  -
    namespace: com.citrix.adc.commontypes
    prefix: cmtypes
    version: "1.0"
parameters-default-sources:
  - stlb::lb
parameters:
  -
    name: monitors
    label: "List of Monitors"
    description: "List of Monitors to monitor Application Servers"
    type: cmtypes::monitor[]
substitutions:
  mon-name(appname, monname): $appname + "-mon-" + $monname
components:
  -
    name: lb-comp
    type: stlb::lb
    description: Uses the default lb StyleBook to build the typical lb configuration objects
    properties-default-sources:
      - $parameters
  -
    name: monitors-comp
    type: cmtypes::monitor
    condition: $parameters.monitors
    repeat: $parameters.monitors
    repeat-item: mon
    repeat-index: ndx
    description: Builds a list of Citrix ADC monitor objects and binds them to the servicegroup of this LB config
    properties-default-sources:
      - $mon
    properties:
        monitorname: $substitutions.mon-name($parameters.lb-appname, $mon.monitorname)
    components:
      -
        name: monitor-svcg-binding-comp
        condition:  $parameters.svc-servers
        type: ns::servicegroup_lbmonitor_binding
        properties:
          servicegroupname: $components.lb-comp.outputs.servicegroup.properties.servicegroupname
          monitor_name: $parent.properties.monitorname
<!--NeedCopy-->
将样书的配置包迁移到另一个样书