样书配置
感谢您提供反馈

这篇文章已经过机器翻译.放弃

使用 API 从样书创建配置

构建样书后,必须使用 NetScaler 控制台 GUI 或使用 NetScaler 控制台 API 将其导入。当您导入样书时,NetScaler 控制台会对其进行验证。如果验证成功,您的样书将显示在 NetScaler 控制台样书目录中,随时可以用于创建配置。

现在可以使用样书 API 基于此样书创建配置。您可以使用任何工具,例如 cURL 命令行工具或 Postman Chrome 浏览器扩展程序,向 NetScaler 控制台发送 HTTP 请求。

注意:

样书 API 使用开发者门户上的 OpenAPI 规范进行了完整记录。

示例 1

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

HTTP 方法: POST

URL: https://<IP>/stylebook/nitro/v2/config/configpacks

请求标头:

Content-Type: application/json

Accept: application/json

请求正文有效载荷:

{ "configpack": { "parameters": { "name": "lb1", "vip-ipaddress": "10.102.117.31" }, "targets": [ { "instance_id": "deecee30-f478-4446-9741-a85041903410" } ], "stylebook": { "name": "lb-vserver", "namespace": "com.example.stylebooks", "version": "1.0" } } }

在这个 HTTP 请求中,ID deecee30-f478-4446-9741-a85041903410 是创建 IP 地址为 10.102.117.31 的负载平衡虚拟服务器 lb1 的 NetScaler 实例的实例 ID。NetScaler 实例的实例 ID 是从 NetScaler 控制台检索的。

要获取由 NetScaler 控制台管理的实例的 ID,您可以使用 NetScaler 控制台 API。例如,要检索实例 ID 或 IP 地址为 192.168.153.160 的 NetScaler 实例,可以使用以下 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", } ] }

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

预期响应标题(成功时):

202 正常

Content-Type: application/json

预期反应正文(成功时):

{ "job": { "job_id": "1460806080" } }

您已经创建了第一个使用 ID 1460806080 进行唯一标识的任务。可以使用此 ID 查询、更新或删除该配置。

您可以使用以下 URL 查询任务状态:

https://<IP>/stylebook/nitro/v2/config/jobs/<jobid>

示例 2

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

HTTP 请求如下:

HTTP 方法: POST

URL: https://<IP>/stylebook/nitro/v2/config/configpacks

请求标头:

Content-Type: application/json

Accept: application/json

请求正文有效载荷:

{ "configpack": { "parameters": { "name": "lb1", "vip-ipaddress": "10.102.117.31", "lb-alg": "LEASTCONNECTION" }, "targets": [ { "instance_id": "deecee30-f478-4446-9741-a85041903410" }, { "instance_id": "abcdee30-f478-4446-9741-a85041903410" } ], "stylebook": { "name": "lb-vserver", "namespace": "com.example.stylebooks", "version": "1.0" } } }

在这个 HTTP 请求中,IP 地址为 10.102.117.31 的负载平衡虚拟服务器 lb1 是在 ID 为“deecee30-f478-4446-9741-a85041903410”和“abcdee30-f478-4446-9741-a85041903410”的两个 NetScaler 实例上创建的。

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

预期响应标题(成功时):

202 正常

Content-Type: application/json

预期反应正文(成功时):

{ "job": { "job_id": "165769629" } }

这个新的配置包有一个不同的 ID,即 165769629。您可以使用此 ID 更新或删除此配置。

示例 3

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

HTTP 方法: POST

URL: https://<IP>/stylebook/nitro/v2/config/configpacks

请求标头:

Content-Type: application/json

Accept: 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": [ { "instance_id": "deecee30-f478-4446-9741-a85041903410" }, { "instance_id": "abcdefgi-d589-4557-8632-a74032802412" } ], "stylebook": { "name": "basic-lb-config", "namespace": "com.example.stylebooks", "version": "0.1" } } }

预期响应标题(成功时):

202 正常

Content-Type: application/json

预期反应正文(成功时):

{ "job": { "job_id": "3628681382" } }

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

示例 4

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

HTTP 方法: POST

URL: https://<IP>/stylebook/nitro/v2/config/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": "abcdefgg-d589-4557-8632-a74032802412" } ], "stylebook": { "name": "composite-example", "namespace": "com.example.stylebooks", "version": "0.1" } }

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

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

预期响应标题(成功时):

202 正常

Content-Type: application/json

预期反应正文(成功时):

{ "job": { "job_id": "3628681382" } }

更新配置

要更新配置,您可以使用以下 API。在这里,将 IP 地址为 10.102.29.54 的后端服务器添加到负载平衡虚拟服务器 `myapp:

HTTP 方法: PUT

URL: https://<IP>/stylebook/nitro/v2/config/configpacks/<configpackid>

请求标头:

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": [ { "instance_id": "deecee30-f478-4446-9741-a85041903410" }, { "instance_id": "abdcedff-d589-4557-8632-a74032802412" } ] } }

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

预期响应标题(成功时):

202 正常

Content-Type: application/json

预期反应正文(成功时):

{ "job": { "job_id": "3628681382" } }

删除配置

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

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

HTTP 方法: DELETE

URL: https://<DNS-or-IP>//stylebook/nitro/v2/config/configpacks/<configpackid>

请求标头:

Accept: application/json

预期响应标题(成功时):

202 正常

Content-Type: application/json

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

{ "job": { "job_id": "3628681382" } }

登录 NetScaler 实例,确认此配置包中的所有配置对象均已删除。

要从特定 NetScaler 实例而不是所有实例中删除配置,请使用更新配置中的更新配置包操作。更改 JSON 负载中的 targets 属性以删除特定的 NetScaler 实例 ID。

本内容的正式版本为英文版。部分 Cloud Software Group 文档内容采用了机器翻译,仅供您参考。Cloud Software Group 无法控制机器翻译的内容,这些内容可能包含错误、不准确或不合适的语言。对于从英文原文翻译成任何其他语言的内容的准确性、可靠性、适用性或正确性,或者您的 Cloud Software Group 产品或服务沿用了任何机器翻译的内容,我们均不作任何明示或暗示的保证,并且适用的最终用户许可协议或服务条款或者与 Cloud Software Group 签订的任何其他协议(产品或服务与已进行机器翻译的任何文档保持一致)下的任何保证均不适用。对于因使用机器翻译的内容而引起的任何损害或问题,Cloud Software Group 不承担任何责任。
使用 API 从样书创建配置