StyleBook 配置

创建和编辑配置包

在 NetScaler Console 中,您可以从 StyleBook 创建配置包。配置包与其创建所用的 StyleBook 绑定。对配置包的任何更新都通过其绑定的 StyleBook 进行。

创建配置包

要从 StyleBook 创建配置包,请执行以下操作:

  1. 导航到 应用程序 > 配置 > 配置包

  2. 单击 添加

  3. 选择 StyleBook 中,选择要从中创建配置包的所需 StyleBook。

    此页面将 StyleBook 分类为默认、企业和自定义 StyleBook。选择相应的选项卡以查找所需的 StyleBook。

  4. 可选,为您的配置包指定唯一的 Config Key。此键将作为此配置包的 Display Key 显示。

    • 如果您指定的 Config Key 已存在,NetScaler Console 将无法创建配置包。

    • 如果您未指定 Config Key,NetScaler Console 会自动分配 Configpack ID。但是,此值不会显示为 Display Key

    • 如果您未指定 Config Key 并且任何 StyleBook 参数已设置 key 属性,则该参数值将显示为 Display Key。有关详细信息,请参阅 参数

  5. 指定所需的详细信息,例如应用程序名称、IP 地址、端口或协议类型。

    GUI 字段因 StyleBook 而异。

  6. 目标实例 中,选择要运行配置的实例或实例组。

    注意:

    您可以通过根据需要指定任意数量的目标实例,将配置部署到多个 NetScaler。

  7. 单击 试运行

    对象 页面显示将从 NetScaler 实例创建、修改或删除的对象。

  8. 单击 创建

    配置包显示在 StyleBook > 配置 页面中。

如果要编辑现有配置包,请选择配置包,然后单击 编辑

重用在 StyleBook 外部创建的配置并在配置包之间共享配置

有时,您可能由于特定的操作需求或旧版设置而在 StyleBook 外部创建了 NetScaler 配置。现在,您可以将这些以前存在的配置集成并作为 StyleBook 配置包的一部分进行管理,从而实现更灵活和集中的管理。

例如,在此功能之前,如果 NetScaler 已配置 SSL 配置文件,并且 StyleBook 的配置包操作尝试创建同名的 SSL 配置文件,则配置包操作将因“资源已存在”错误而失败。现在,启用此功能后,配置包操作将成功,并且同名的现有 SSL 配置文件可以在新配置包中重用。

同样,您可能还会面临在多个应用程序或配置中需要网络设置、安全策略或部分应用程序配置等资源的情况。此功能使您能够跨多个配置包共享配置。

要启用此功能,请执行以下步骤:

  1. 导航到 应用程序 > 配置 > StyleBook

  2. StyleBook 页面上,选择要用于创建新配置包的 StyleBook,或选择与您正在编辑的配置包关联的 StyleBook。

  3. 选择操作 中,单击 配置设置

    配置设置选项

    配置 StyleBook 设置选项

  4. 通过选择以下一个或两个选项来调整设置:
    • 要在创建配置时启用 NetScaler 上现有资源的重用,请选择选项 允许在创建配置时重用 NetScaler 上的现有资源
    • 要在删除配置时保留 NetScaler 上的重用资源,请选择选项 删除配置时是否保留 NetScaler 上的重用资源?。此选项会保留最初在 StyleBook 外部在 NetScaler 上创建的资源,即使引用它们的最后一个配置包被删除,也能确保它们持续可用。
  5. 单击 确定

更改配置包的 StyleBook

有时,您需要更新 StyleBook 以添加功能或修复问题。如果您已使用旧 StyleBook 创建了配置包,则可能需要更新它们以使用新的更新 StyleBook。要使用新的 StyleBook,请更改配置包的现有 StyleBook。

考虑一个示例 StyleBook example-lb,它在 NetScaler 实例上部署基本负载平衡器配置。然后,您从该 StyleBook 创建一个配置包 CP1。

要使用基本负载平衡器配置来配置监视器,您需要一个新的 StyleBook。为此,请创建一个 example-lb-mon StyleBook,其中包含配置监视器以及基本负载平衡器配置的功能。

创建 StyleBook 后,更新现有配置包 CP1 以添加监视器。要更新配置包,请执行以下操作:

  1. 导航到 应用程序 > 配置 > 配置包

  2. 选择要更改其 StyleBook 的配置包。

    在此示例中,从列表中选择 CP1。

  3. 单击 更改 StyleBook

  4. 从列表中选择所需的 StyleBook。然后,单击 保存选择

  5. 单击 更改

    在此示例中,从列表中选择 example-lb-mon

    更改配置包的 StyleBook 时,新 StyleBook 中的参数结构可能与现有 StyleBook 不同。如果参数结构与以前的 StyleBook 相似,则参数值会自动保留在其各自的字段中。否则,只有在两个 StyleBook 之间具有相同结构的参数才会传输。例如,相同的参数名称、类型、参数父级等。

    注意:

    StyleBook 兼容性 页面显示参数中的差异。此页面可帮助您决定是更改 StyleBook 还是继续使用现有 StyleBook。如果要更改 StyleBook,请查看更改,然后单击 下一步

    如果新 StyleBook 中添加了新参数,则在更改 StyleBook 后,您必须手动指定此类参数的值。

    在此示例中,example-lb StyleBook 的配置页面上显示的参数如下:

    负载平衡配置包示例

    example-lb-mon StyleBook 的配置页面上显示的参数如下:

    配置包迁移后的参数示例

    在这种情况下,StyleBook 会保留基本负载平衡器配置的旧值,因为新 StyleBook 未更改现有参数。并且,它仅添加新参数。对于监视器参数,请手动指定所需值。

  6. 目标实例 中,查看所选实例并在必要时更新列表。

  7. 单击 试运行

    对象 页面显示将从 NetScaler 实例创建、修改或删除的对象。

  8. 单击 确定

    StyleBook > 配置 页面中,StyleBook 名称 列显示所选配置包的新 StyleBook 名称。在这种情况下,它显示 example-lb-mon

更改具有多个配置包的 StyleBook

当您要更改具有多个配置包的现有 StyleBook 时,请执行以下操作:

  1. 将新的 StyleBook 导入 NetScaler Console。

    通常,新 StyleBook 的名称和命名空间与现有 StyleBook 相同,但版本更高。但是,如果名称、命名空间或版本不同,则可以跳过此步骤。

  2. 更改与现有 StyleBook 关联的配置包的 StyleBook。

    仅当所选配置包与同一 StyleBook 关联时,您才能选择 更改 StyleBook

    对于所选配置包,当满足以下条件时,NetScaler Console 会成功更改 StyleBook:

    • 现有 StyleBook 的所有配置参数都必须存在于所选 StyleBook 中。

    • 所选 StyleBook 中的新参数是可选的。

    要查看所选配置包的进度,请在 配置 页面中选择 进行中/失败的配置

  3. 一旦所有配置包都绑定到新的 StyleBook,请从 NetScaler Console 中删除旧 StyleBook。

导出或导入配置包

您可以像 StyleBook 一样导出或导入配置包。借助此功能,您可以轻松地将 StyleBook 配置共享到另一个 NetScaler Console 服务器。导出配置包时,tgzzip 捆绑包会下载到您的本地计算机。此捆绑包包含一个 JSON 文件,其中包含配置包中定义的所有参数。

导出配置

要导出配置包,请执行以下操作:

  1. 导航到 应用程序 > 配置 > 配置包

  2. 选择要导出的配置包。

  3. 选择操作 中,选择 导出配置

    导出配置选项

  4. 导出配置 窗格中,指定以下内容:

    • 部署配置的目标实例信息:选择此选项以在导出捆绑包中包含目标实例的信息。

    • 与配置关联的 StyleBook:选择此选项以在导出捆绑包中包含 StyleBook。

    • 用于保护导出配置数据的密码:指定密码以加密导出捆绑包。此密码可保护配置包的敏感数据。

    • 压缩文件类型:选择 ZIPTGZ 文件类型。

    导出配置包

  5. 单击 导出

    将导出捆绑包保存到您的本地计算机。

导入配置

您可以将配置包从本地计算机导入到不同的 NetScaler Console 服务器。要导入配置包,请执行以下操作:

  1. 导航到 应用程序 > 配置 > 配置包

  2. 选择 导入配置

  3. 从您的计算机中选择导入文件捆绑包。

  4. 使用您在导出期间指定的密码。

  5. 可选,在高级选项中,选择 仅当所有配置对象已存在于 NetScaler 上时才允许创建新配置

    此选项不会更改已在 NetScaler 实例上创建的对象。

    假设您在两个 NetScaler Console 服务器中添加了相同的 NetScaler 实例。并且,您想要将配置包从一个 NetScaler Console 服务器迁移到另一个服务器。使用此选项可以导入配置包,而不会更改其在 NetScaler 实例上的配置对象。

    重要提示:

    要使用此选项,请确保指定的配置捆绑包包含目标实例信息。请参阅 导出配置

    如果所有对象都存在于目标实例上,则此选项仅迁移配置。

  6. 单击 导入

导入配置

导入配置包时,NetScaler Console 会验证以下内容:

  • 关联的 StyleBook:如果关联的 StyleBook 不在 NetScaler Console 中,它会随配置包一起导入 StyleBook。

  • 目标实例:检查目标实例并在指定的目标实例上部署配置。如果提及的 NetScaler 实例在 NetScaler Console 中不存在,则配置包在没有目标实例的情况下导入。

  • 源 NetScaler Console:如果您在同一 NetScaler Console 服务器上导入配置包,则所选捆绑包会更新现有配置包。

将配置包另存为草稿

配置包中的 另存为草稿 选项允许您将配置更改另存为草稿。此功能会保存更改,而不会立即将其部署到 NetScaler 实例。

要将配置包另存为草稿,请执行以下步骤:

  1. 导航到 应用程序 > 配置 > 配置包
  2. 配置 页面上,单击 添加
  3. 选择所需的 StyleBook,然后单击 选择
  4. 创建配置 页面上,单击 另存为草稿

另存为草稿

配置包另存为草稿后,您的配置更改不会直接部署到 NetScaler 实例。相反,配置包会作为草稿存储在 待处理配置 下的 草稿配置 选项卡中。

草稿配置 选项卡中,选择配置包以执行以下操作:

  • 编辑草稿的配置。
  • 将配置部署到 NetScaler 实例。
  • 删除草稿。

草稿配置

您还可以安排何时部署保存的草稿。

有关详细信息,请参阅 为配置包创建计划

为配置包创建计划

默认情况下,创建配置包时,配置包会自动部署到 NetScaler 实例。借助此功能,您可以安排配置包的部署。

要为配置包创建计划,请执行以下步骤:

  1. 导航到 应用程序 > 配置 > 配置包
  2. 配置 页面上,单击 添加
  3. 选择 StyleBook,然后单击 选择
  4. 创建配置 页面上,在 执行 下,从 执行模式 列表中选择 稍后
  5. 选择所需的日期和时间进行计划,然后单击 提交

执行模式

所有计划的配置都存储在 待处理配置 下的 计划的配置 选项卡中。您可以选择创建的计划来编辑配置参数、部署或取消计划。

注意:

部署计划的配置包会取消计划并立即执行配置。

计划的配置

对于已部署的配置包

您还可以创建计划来编辑和删除已部署的配置包。

安排配置包的编辑操作

要创建计划以编辑已部署的配置包,请执行以下步骤:

  1. 导航到 应用程序 > 配置 > 配置包
  2. 配置 页面上,选择 StyleBook,然后单击 编辑
  3. 编辑配置 页面上,编辑配置包。
  4. 执行模式 列表中,选择 稍后
  5. 选择所需的日期和时间进行计划,然后单击 提交

安排配置包的删除操作

要创建计划以删除已部署的配置包,请执行以下步骤:

  1. 导航到 应用程序 > 配置 > 配置包
  2. 配置 页面上,选择 StyleBook,然后单击 删除
  3. 执行模式 列表中,选择 稍后
  4. 选择所需的日期和时间进行计划,然后单击 确定

删除配置包计划

从配置包中分离目标实例

要从配置包中分离目标实例,请执行以下操作:

  1. 导航到 应用程序 > 配置 > 配置包

  2. 选择包含要删除的目标实例的配置包。

  3. 选择操作 中,选择 分离目标

  4. 分离目标 窗格中,选择要从配置包中删除的目标实例。

    分离目标

  5. 单击 确定

显示一条消息,确认已创建重复的配置包,其中目标实例现已删除。

构建您的 StyleBook

example-lb StyleBook 的完整内容如下所示,供您参考:

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-->

example-lb-mon StyleBook 的完整内容如下所示,供您参考:

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-->