使用 API 从 StyleBook 创建配置
构建 StyleBook 后,您必须使用 NetScaler Console GUI 或 NetScaler Console API 导入它。导入时,NetScaler Console 会验证您的 StyleBook。如果验证成功,您的 StyleBook 将显示在 NetScaler Console 的 StyleBook 目录中,可用于创建配置。
您现在可以使用 StyleBook API 基于此 StyleBook 创建配置。您可以使用任何工具,例如 cURL 命令行工具或 Postman Chrome 浏览器扩展程序,向 NetScaler Console 发送 HTTP 请求。
注意:
StyleBook API 在 开发人员门户 上使用 OpenAPI 规范进行了完整记录。
示例 1
考虑在 创建负载均衡虚拟服务器的 StyleBook 中创建的
lb-vserver StyleBook。使用以下 REST API 从此 StyleBook 创建配置包:
HTTP 方法: POST
URL:
https://<IP>/stylebook/nitro/v2/config/configpacks
请求头:
内容类型: application/json
接受: 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 Console 中检索的。
要获取由 NetScaler Console 管理的实例的 ID,您可以使用 NetScaler Console API。例如,要检索 IP 地址为 192.168.153.160 的 NetScaler 实例的实例 ID,您可以使用以下 API:
HTTP 方法: GET
URL:
https://<IP>/nitro/v2/config/ns?filter=ip_address:192.168.153.160
请求头:
接受: application/json
响应在 JSON 有效负载中包含 ID:
预期响应头(成功时):
200 OK
内容类型: 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 OK
内容类型: application/json
预期响应正文(成功时):
{
"job":
{
"job_id": "1460806080"
}
}
您已创建您的第一个作业,该作业通过 ID 1460806080 唯一标识。您可以使用此 ID 查询、更新或删除配置。
您可以使用以下 URL 查询作业状态:
https://<IP>/stylebook/nitro/v2/config/jobs/<jobid>
示例 2
您可以使用相同的 StyleBook 创建另一个配置或配置包,并在相同或不同的 NetScaler 实例上运行它。在此示例中,创建另一个配置,并为虚拟服务器提供不同的名称和 IP 地址。将 LEASTCONNECTION 指定为负载平衡方法。将此配置部署到两个 NetScaler 实例上。
HTTP 请求如下:
HTTP 方法: POST
URL:
https://<IP>/stylebook/nitro/v2/config/configpacks
请求标头:
内容类型: application/json
接受: 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 OK
内容类型: application/json
预期响应正文(成功时):
{
"job": {
"job_id": "165769629"
}
}
此新配置包具有不同的 ID,即 165769629。您可以使用此 ID 更新或删除此配置。
示例 3
考虑您在 StyleBook to Create a Basic Load balancing Configuration 中创建的“basic-lb-config”StyleBook。使用 REST API 从此 StyleBook 创建配置包,如下所示:
HTTP 方法: POST
URL:
https://<IP>/stylebook/nitro/v2/config/configpacks
请求标头:
内容类型: application/json
接受: 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 OK
内容类型: application/json
预期响应正文(成功时):
{
"job": {
"job_id": "3628681382"
}
}
在此 HTTP 请求中,负载平衡配置在两个 NetScaler 实例上运行。您可以登录这些 NetScaler 实例,以验证是否已创建虚拟服务器和绑定了两个服务的服务组。
示例 4
考虑您在 创建复合 StyleBook 中创建的复合 StyleBook composite-example。使用 REST API 从此 StyleBook 创建配置包,如下所示:
HTTP 方法: POST
URL:
https://<IP>/stylebook/nitro/v2/config/configpacks
请求标头:
内容类型: application/json
接受: 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 请求中,配置是在两个 NetScaler 实例(由其 ID 表示)上创建的。如果您登录到 NetScaler 实例,则可以查看由导入到“composite-example”StyleBook 中的“basic-lb-config”StyleBook 创建的配置对象。您还可以看到一个名为
myapp-mon 的新 HTTP 监视器,它是“composite-example”StyleBook 的一部分。
成功创建配置包后,将收到以下 HTTP 响应:
预期响应标头(成功时):
202 OK
内容类型: application/json
预期响应正文(成功时):
{
"job": {
"job_id": "3628681382"
}
}
更新配置
要更新配置,您可以使用以下 API。在此,IP 地址为 10.102.29.54 的后端服务器已添加到负载均衡虚拟服务器 `myapp:
HTTP 方法: PUT
URL:
https://<IP>/stylebook/nitro/v2/config/configpacks/<configpackid>
请求头:
内容类型: application/json
接受: 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 OK
内容类型: application/json
预期响应正文(成功时):
{
"job": {
"job_id": "3628681382"
}
}
删除配置
要删除此配置(从所有 NetScaler 实例中),您可以使用删除配置包的 API,如下所示:
成功删除配置包后,会收到以下 HTTP 响应:
HTTP 方法: DELETE
URL:
https://<DNS-or-IP>//stylebook/nitro/v2/config/configpacks/<configpackid>
请求头:
接受: application/json
预期响应头(成功时):
202 OK
内容类型: application/json
预期响应负载(成功时):
{
"job": {
"job_id": "3628681382"
}
}
登录到 NetScaler 实例,并验证此配置包中的所有配置对象是否已删除。
要从特定的 NetScaler 实例而不是所有实例中删除配置,请使用 更新配置 中的更新配置包操作。更改 JSON 负载中的
targets 属性以删除特定的 NetScaler 实例 ID。