Use API to create configurations from StyleBooks 编辑

Use API to create configurations from StyleBooks

After you have built your StyleBook, you have to import it to Citrix ADM to use it either by using the Citrix ADM or by using Citrix ADM APIs. Citrix ADM validates your StyleBook when you import it, and if the validation is successful, your StyleBook appears on the Citrix ADM catalog of StyleBooks, ready to be used for creating configurations.

You can now use the StyleBook APIs to create configurations based on this StyleBook. You can use any tool such as the cURL command line tool or the Postman chrome browser extension to send HTTP requests to Citrix ADM.

Example 1

Consider the lb-vserver StyleBook you have created in StyleBook to Create a Load Balancing Virtual Server. Use REST API to create a configuration pack from this StyleBook as follows:

HTTP METHOD: POST

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

REQUEST Headers:

Content-Type: application/json

Accept: application/json

REQUEST BODY PAYLOAD:

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

In this HTTP request, the id (for example, “deecee30-f478-4446-9741-a85041903410”) is the instance ID of the Citrix ADC instance on which the load balancing virtual server lb1 with IP address 10.102.117.31 is created. The instance ID of the Citrix ADC instance is retrieved from Citrix ADM.

To obtain the ID of an instance managed by Citrix ADM, you can use Citrix ADM APIs. For example, to retrieve the instance ID or a Citrix ADC instance whose IP address is 192.168.153.160, you can use the following API:

HTTP METHOD: GET

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

REQUEST HEADERS:

Accept: application/json

The response contains the ID in the json payload:

EXPECTED RESPONSE HEADERS (on success):

200 OK

Content-Type: application/json

EXPECTED RESPONSE BODY (on success):

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

If the configuration (configuration pack) is successfully created, you receive the following HTTP response:

EXPECTED RESPONSE HEADERS (on success):

200 OK

Content-Type: application/json

EXPECTED RESPONSE BODY (on success):

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

You have created your first configuration (configuration pack) that is uniquely identified by using the id 1460806080. You can use this ID to query, update, or delete the configuration.

Example 2

You can use the same StyleBook to create another configuration or configuration pack and run it on the same or different Citrix ADC instances. In this example, create another configuration and provide a different name and IP address for the virtual server and also specify LEASTCONNECTION as the load balancing method. Deploy this configuration on two Citrix ADC instances.

The HTTP request is as follows:

HTTP METHOD: POST

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

REQUEST HEADERS:

Content-Type: application/json

Accept: application/json

REQUEST BODY PAYLOAD:

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

In this HTTP request, the load balancing virtual server lb2 with IP address 10.102.117.32 is created on the two Citrix ADC instances represented by the ids “deecee30-f478-4446-9741-a85041903410” and “debecc60-d589-4557-8632-a74032802412”.

On successful creation of the configuration pack, the following HTTP response is received:

EXPECTED RESPONSE HEADERS (on success):

200 OK

Content-Type: application/json

EXPECTED RESPONSE BODY (on success):

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

This new configuration pack has a different id 165769629. You can update or remove this configuration by using this id.

Example 3

Consider the “basic-lb-config” StyleBook you have created in StyleBook to Create a Basic Load balancing Configuration. Use REST API to create a configuration pack from this StyleBook as follows:

HTTP METHOD: POST

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

REQUEST HEADERS:

Content-Type: application/json

Accept: application/json

EXPECTED RESPONSE HEADERS (on success):

200 OK

Content-Type: application/json

EXPECTED RESPONSE BODY (on success):

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

In this HTTP request, the load balancing configuration is ran on two Citrix ADC instances. You can log on to these Citrix ADC instances to verify whether a virtual server and a service group with two services bound are created.

Example 4

Consider the composite StyleBook composite-example you created in Create a Composite StyleBook. Use REST API to create a configuration pack from this StyleBook as follows:

HTTP METHOD: POST

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

REQUEST HEADERS:

Content-Type: application/json

Accept: application/json

REQUEST BODY PAYLOAD:

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

In this HTTP request, the configuration is created on two Citrix ADC instances represented by their ids. If you log on to the Citrix ADC instances, you can view the configuration objects created by the “basic-lb-config” StyleBook that was imported into the “composite-example” StyleBook. You can also see a new HTTP monitor called myapp-mon that was part of the “composite-example” StyleBook.

On successful creation of the configuration pack, the following HTTP response is received:

EXPECTED RESPONSE HEADERS (on success):

200 OK

Content-Type: application/json

EXPECTED RESPONSE BODY (on success):

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

Updating a configuration

To update this configuration, for example, by adding a new back end server with IP address 10.102.29.54 to the load balancing virtual server myapp, use the API for updating a configuration pack as follows:

HTTP METHOD: PUT

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

REQUEST HEADERS:

Content-Type: application/json

Accept: application/json

REQUEST BODY PAYLOAD:

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

On successful update of the configuration pack, the following HTTP response is received:

EXPECTED RESPONSE HEADERS (on success):

200 OK

Content-Type: application/json

EXPECTED RESPONSE BODY (on success):

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

Deleting a configuration

To delete this configuration (from all the Citrix ADC instances), you can use the API for deleting a configuration pack as follows:

On successful deletion of the configuration pack, the following HTTP response is received:

HTTP METHOD: DELETE

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

REQUEST HEADERS:

Accept: application/json

EXPECTED RESPONSE HEADERS (on success):

200 OK

Content-Type: application/json

EXPECTED RESPONSE PAYLOAD (on success):

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

You can log on to the Citrix ADC instance and verify that all the configuration objects that are part of this configuration pack have been removed.

If you want to remove the configuration from specific Citrix ADC instances instead of from all the instances, use the update configuration pack operation described above and change the “targets” attribute in the JSON payload to remove the specific Citrix ADC instance IDs.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:9 次

字数:12589

最后编辑:6 年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文