样书配置

使用 API 从样本创建配置

生成样书后,必须将其导入到 Citrix ADM 才能使用 Citrix ADM 或使用 Citrix ADM API 使用它。Citrix ADM 会在您导入样书时对其进行验证,如果验证成功,您的样书将出现在 Citrix ADM 样书目录中,随时可以用于创建配置。

现在可以使用样本 API 基于此样本创建配置。您可以使用 cURL 命令行工具或 Postman chrome 浏览器扩展程序等任何工具向 Citrix ADM 发送 HTTP 请求。

示例 1

以您在 lb-vserver 样书中创建的 用于创建负载平衡虚拟服务器的样书为例。使用 REST API 从此样书创建配置包,如下所示:

HTTP 方法: POST

URL: https://<ADM-agent-DNS-or-IP>/stylebook/nitro/v2/config/stylebooks/com.example.stylebooks/0.1/lb-vserver/configpacks

请求标题:

Content-Type: application/json

Accept: application/json

请求正文有效载荷:

{
  "configpack":
  {
    "parameters": {
      "name": "lb1",
      "ip": "10.102.117.31"
    },
    "targets":
    [
      {
        "id": "deecee30-f478-4446-9741-a85041903410"
      }
    ]
  }
}
<!--NeedCopy-->

在此 HTTP 请求中,ID(例如 deecee30-f478-4446-9741-a85041903410)是在其中创建 IP 地址为 10.102.117.31 的负载平衡虚拟服务器 lb1 的 Citrix ADC 实例的实例 ID。Citrix ADC 实例的实例 ID 是从 Citrix ADM 中检索的。

要获取由 Citrix ADM 管理的实例的 ID,可以使用 Citrix ADM API。例如,要检索实例 ID 或 IP 地址为 192.168.153.160 的 Citrix ADC 实例,可以使用以下 API:

HTTP 方法: GET

URL: https://<IP>/nitro/v2/config/ns?filter=ip_address:192.168.153.160

请求标头:

Accept: application/json

该响应包含 json 负载中的 ID:

预期响应标题(成功):

200 OK

Content-Type: application/json

预期反应正文(关于成功):

{
  "errorcode": 0,
  "message": "Done",
  "operation": "get",
  "resourceType": "ns",
  "username": "nsroot",
  "tenant_name": "Owner",
  "resourceName": "",
  "ns":
  [
    {
    "is_grace": "false",
    "hostname": "",
    "std_bw_config": "0",
    "gateway_deployment": "false",
    "id": "deecee30-f478-4446-9741-a85041903410",
   }
 ]
}
<!--NeedCopy-->

如果成功创建了配置(配置包),您将收到以下 HTTP 响应:

预期响应标题(成功):

200 OK

Content-Type: application/json

预期反应正文(关于成功):

{
  "configpack":
  {
    "config_id": "1460806080"
  }
}
<!--NeedCopy-->

您已经创建了第一个配置(配置包),该配置包通过使用 id 1460806080 进行唯一标识。可以使用此 ID 查询、更新或删除该配置。

示例 2

您可以使用相同的样书创建另一个配置或配置包,然后在相同或不同的 Citrix ADC 实例上运行它。在此示例中,创建另一个配置并为虚拟服务器提供不同的名称和 IP 地址,另外还指定 LEASTCONNECTION 作为负载平衡方法。在两个 Citrix ADC 实例上部署此配置。

HTTP 请求如下:

HTTP 方法: POST

URL: https://<DNS-or-IP>/stylebook/nitro/v2/config/stylebooks/com.example.stylebooks/0.1/lb-vserver/configpacks

请求标头:

Content-Type: application/json

Accept: application/json

请求正文有效载荷:

{
  "configpack":
  {
    "parameters":
    {
      "name": "lb2",
      "ip": "10.102.117.32",
      "lb-alg": "LEASTCONNECTION"
    },
    "targets"
    [
     {"id": "deecee30-f478-4446-9741-a85041903410"},
     {"id": "debecc60-d589-4557-8632-a74032802412"}
    ]
  }
}
<!--NeedCopy-->

在此 HTTP 请求中,在由 ID deecee30-f478-4446-9741-a85041903410 和 debecc60-d589-4557-8632-a74032802412 表示的两个 Citrix ADC 实例上创建 IP 地址为 10.102.117.32 的负载平衡虚拟服务器 lb2。

成功创建配置包后,将收到以下 HTTP 响应:

预期响应标题(成功):

200 OK

Content-Type: application/json

预期反应正文(关于成功):

{
   "configpack":
  {
     "config_id": "1657696292"
  }
}
<!--NeedCopy-->

这个新的配置包具有不同的 ID 165769629。您可以通过使用此 ID 更新或删除此配置。

示例 3

考虑在用于创建基本负载平衡配置的样书中创建的“basic-lb-config”样书。使用 REST API 从此样书创建配置包,如下所示:

HTTP 方法: POST

URL: http://<DNS-or-IP>/stylebook/nitro/v2/config/stylebooks/com.example.stylebooks/0.1/basic-lb-config/configpacks

请求标头:

Content-Type: application/json

Accept: application/json

预期响应标题(成功):

200 OK

Content-Type: application/json

预期反应正文(关于成功):

{
  "configpack":
  {
    "parameters":
    {
      "name": "myapp",
      "ip": "10.70.122.25",
      "svc-servers": ["192.168.100.11","192.168.100.12"],
       "svc-port": 8080
    },
    "targets":
    [
     {
      "id": "deecee30-f478-4446-9741-a85041903410"
     },
     {
      "id": "debecc60-d589-4557-8632-a74032802412"
     }
    ]
  }
}
<!--NeedCopy-->

在此 HTTP 请求中,负载平衡配置在两个 Citrix ADC 实例上运行。您可以登录到这些 Citrix ADC 实例,以验证是否创建了绑定了两个服务的虚拟服务器和服务组。

示例 4

考虑在创建复合样书中创建的复合样书 composite-example。使用 REST API 从此样书创建配置包,如下所示:

HTTP 方法: POST

URL: http://<DNS-or-IP>/stylebook/nitro/v2/config/stylebooks/com.example.stylebooks/0.1/composite-example/configpacks

请求标头:

Content-Type: application/json

Accept: application/json

请求正文有效载荷:

{
  "configpack":
  {
    "parameters": {
      "name": "myapp",
      "ip": "2.2.2.2",
      "svc-servers": ["10.102.29.52","10.102.29.53"]
    },
    "targets":
    [
     {
      "id": "deecee30-f478-4446-9741-a85041903410"
     },
     {
      "id": "debecc60-d589-4557-8632-a74032802412"
     }
    ]
  }
}
<!--NeedCopy-->

在此 HTTP 请求中,配置是在两个 Citrix ADC 实例上创建的,这些实例由其 ID 表示。如果您登录到 Citrix ADC 实例,则可以查看导入到“复合示例”样本中的“基本 lb-config”样本创建的配置对象。您还可以看到一个名为 myapp-mon 的新 HTTP 监视器作为“composite-example”样书的一部分。

成功创建配置包后,将收到以下 HTTP 响应:

预期响应标题(成功):

200 OK

Content-Type: application/json

预期反应正文(关于成功):

{
  "configpack": {
    "config_id": "4917276817"
  }
}
<!--NeedCopy-->

更新配置

要更新此配置,例如,通过向负载平衡虚拟服务器添加具有 IP 地址 10.102.29.54 的新后端服务器 myapp,请使用 API 更新配置包,如下所示:

HTTP 方法: PUT

URL: http://<DNS-or-IP>/stylebook/nitro/v2/config/stylebooks/com.example.stylebooks/0.1/composite-example/configpacks/4917276817

请求标头:

Content-Type: application/json

Accept: application/json

请求正文有效载荷:

{
  "configpack": {
    "parameters": {
      "name": "myapp",
      "ip": "2.2.2.2",
      "svc-servers": ["10.102.29.52","10.102.29.53","10.102.29.54"]
  },
  "targets":
   [
     {
      "id": "deecee30-f478-4446-9741-a85041903410"
     },
     {
      "id": "debecc60-d589-4557-8632-a74032802412"
     }
   ]
  }
}
<!--NeedCopy-->

成功更新配置包后,将收到以下 HTTP 响应:

预期响应标题(成功):

200 OK

Content-Type: application/json

预期反应正文(关于成功):

{
   "configpack": {
     "config-id": "4917276817"
  }
}
<!--NeedCopy-->

删除配置

要删除此配置(从所有 Citrix ADC 实例中),您可以使用 API 删除配置包,如下所示:

成功删除配置包后,将收到以下 HTTP 响应:

HTTP 方法: DELETE

URL: http://<DNS-or-IP>/stylebook/nitro/v2/config/stylebooks/com.example.stylebooks/0.1/composite-example/configpacks/4917276817

请求标头:

Accept: application/json

预期响应标题(成功):

200 OK

Content-Type: application/json

预期响应有效载荷(成功):

{
   "configpack": {
     "config_id": "4917276817"
  }
}
<!--NeedCopy-->

您可以登录 Citrix ADC 实例并验证是否已删除属于此配置包的所有配置对象。

如果要从特定 Citrix ADC 实例而不是从所有实例中删除配置,请使用上述更新配置包操作并更改 JSON 负载中的“目标”属性以删除特定的 Citrix ADC 实例 ID。

使用 API 从样本创建配置