APIを使用してStyleBookから設定を作成する
StyleBookを作成したら、Citrix ADM またはCitrix ADM APIを使用して使用するには、Citrix ADM にインポートする必要があります。Citrix ADM はインポート時にStyleBookを検証し、検証が成功すると、StyleBookのCitrix ADMカタログにStyleBookが表示され、構成の作成に使用できます。
StyleBook APIを使用して、このStyleBookに基づいて構成を作成できるようになりました。cURLコマンドラインツールやPostman Chromeブラウザ拡張機能などの任意のツールを使用して、HTTPリクエストをCitrix ADMに送信できます。
例1
負荷分散仮想サーバーを作成するためにlb-vserver
StyleBookで作成したStyleBookを考えてみましょう。 次のように、REST APIを使用して、このStyleBookから設定パックを作成します。
HTTPメソッド: ポスト
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”)は、負荷分散仮想サーバー lb1 がIPアドレス10.102.117.31が作成されるCitrix ADC インスタンスのインスタンスIDです。Citrix ADC インスタンスのインスタンス ID は Citrix ADM から取得されます。
Citrix ADM によって管理されるインスタンスのIDを取得するには、Citrix ADM APIを使用します。たとえば、IP アドレスが 192.168.153.160 のインスタンス ID または Citrix ADC インスタンスを取得するには、次の API を使用できます。
HTTP メソッド: 取得
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
同じStyleBookを使用して別の構成パックまたは構成パックを作成し、同じまたは異なるCitrix ADCインスタンスで実行できます。この例では、別の構成を作成し、仮想サーバーに異なる名前とIPアドレスを指定します。また、負荷分散の方法としてLEASTCONNECTIONを指定します。この構成を 2 つの Citrix ADC インスタンスにデプロイします。
HTTP要求は次のとおりです。
HTTPメソッド: ポスト
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リクエストでは、IPアドレス10.102.117.32の負荷分散仮想サーバーlb2が、ids “deecee30-f478-4446-9741-a85041903410”と”debecc60-d589-4557-8632-a74032802412”で表される2つのCitrix ADC インスタンスに作成されます。
構成パックが正常に作成されると、次の HTTP 応答が受信されます。
期待されるレスポンスヘッダー (成功した場合):
200 OK
Content-Type: application/json
期待されるレスポンスボディ (成功した場合):
{
"configpack":
{
"config_id": "1657696292"
}
}
<!--NeedCopy-->
この新しい構成パックには、異なる ID 165769629 があります。このIDを使用することで、この構成を更新または削除できます。
例3
「基本的な負荷分散の構成を作成するためのStyleBook」で作成した「basic-lb-config」StyleBookを参考にします。次のように、REST APIを使用して、このStyleBookから設定パックを作成します。
HTTPメソッド: ポスト
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リクエストでは、負荷分散構成は2つのCitrix ADCインスタンス上で実行します。これらのCitrix ADC インスタンスにログオンして、仮想サーバーと2つのサービスがバインドされたサービスグループが作成されているかどうかを確認できます。
例4
「複合StyleBookの作成」で作成した複合StyleBookのcomposite-exampleを参考にします。次のように、REST APIを使用して、このStyleBookから設定パックを作成します。
HTTPメソッド: ポスト
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リクエストでは、IDで表される2つのCitrix ADCインスタンスで構成が作成されます。Citrix ADC インスタンスにログオンすると、「複合例」スタイルブックにインポートされた「basic-lb-config」スタイルブックで作成された構成オブジェクトを表示できます。また、「複合例」 StyleBookの一部であったmyapp-mon
という新しいHTTPモニターも見られます。
構成パックが正常に作成されると、次の 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ペイロードの「targets」属性を変更して特定のCitrix ADCインスタンスIDを削除します。