将一本样书的配置包迁移到另一本样书
在 NetScaler Application Delivery Management (ADM) 中,配置包始终绑定到创建配置包时使用的样书。对配置包的任何更新只能通过配置包绑定到的样书来完成。NetScaler ADM 现在允许您将现有配置包迁移到新的样书。新的样书可以是绑定到配置包的当前样书的更原始的版本。或者,您也可以将配置包迁移到完全不同的样书中。
例如,您创建了一个名为 exam-lb的样书。此样书用于在 NetScaler 实例上部署基本负载平衡器配置。您在 NetScaler 实例上使用这本样书创建了一个配置包 CP1。稍后,您意识到样书不包含监视配置。所以,您现在创建了一个名为 example-lb-mon 的样书。此样书具有与 exam-lb 样书相同的负载平衡器配置,但增加了配置监视器的功能。
现在,您需要更新在 configpack CP1 中创建的现有配置,以添加一些监视器。以前,您必须删除配置包 CP1 并从新样书中创建配置包 CP2,才能在配置中添加显示器。删除 CP1 会删除一个或多个 NetScaler 实例上的配置包 CP1 中创建的所有配置。早些时候,您必须通过为所有参数键入值,通过新的样书重新创建新的配置包。
取而代之的是,您现在可以将现有的 configpack CP1 迁移到新的 example-lb-mon 样书中。您的新样书可以配置显示器监视器的详细信息。只有那些与监视器相关的配置对象才会添加到部署配置包的 NetScaler 实例中。您现在只需提供显示器的详细信息。在未更改的 NetScaler 实例上部署的现有配置不受影响。
迁移配置包
将使用 example-lb 样书创建的配置包迁移到 example-lb-mon 样书
-
在 NetScaler ADM 中,导航到 应用程序 > 配置。配置页面显示系统中存在的所有配置包。
-
向下滚动查找您之前创建的 example-lb 配置包,然后单击迁移配置包。
-
将打开“选择要迁移的目标样书”页面,其中列出了所有 NetScaler ADM 中可用的样式书。向下滚动找到 example-lb-mon 样书,然后单击选择样书。您也可以通过输入 example-lb-mon 来搜索样书。
如果您从一个样书迁移到另一个样书,则两个样书中的所有参数可能不具有相同的结构。如果参数结构相似,则先前的值将自动保留在参数字段中。新样书中的一些参数可能是新的,或者它们的结构可能发生了变化。在这种情况下,必须手动填写样书参数的值。例如,下图显示了 example-lb样书的参数。
下图显示了将配置包迁移到 example-lb-mon 样书后的参数。
在这种情况下,您可以看到样书保留了基本负载平衡器配置的旧值。但是,必须手动键入监视器参数的值。
-
键入用于在实例上创建监视器的新参数的值。
-
在“目标实例”下,单击并选择要运行配置的 NetScaler 实例的 IP 地址。请注意,您可以通过根据需要指定任意数量的目标实例,在多个 NetScaler 上部署配置。
-
单击试运行。对象页面显示将从 NetScaler 实例中新创建、修改或删除的对象。
-
单击 创建 可创建或更新所选实例的配置。如果目标实例是新的,则会创建配置包。否则,将更新实例上部署的现有配置。
注意:
您也可以单击刷新图标添加最近发现的 NetScaler 实例。因此,这些实例可立即在此窗口的实例列表中找到。刷新图标当前仅在 NetScaler ADM 上可用。
您也可以将配置包从样书的一个版本迁移到下一个版本。在这里,您可能还必须键入新版本中存在的任何新必需参数的值。您也可以将配置包迁移到旧版本的样书。在这种情况下,将删除旧样书中不存在的额外参数。对象页面显示从配置中移除的任何对象。
成功迁移后,ConfigPack 将绑定到新的样书。
您可以看到配置包的名称和配置包 ID 与之前相同。但是 NetScaler 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 NetScaler 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-->