NetScalerインスタンスをデータソースとして使用
管理対象のNetScalerインスタンスをデータソースとして使用できます。managed-adc
は、NetScaler Consoleでデータソースとしてすぐに使用できる組み込みのデータソースタイプです。NetScaler Console内の各管理対象NetScalerインスタンスは、デフォルトでデータソースです。設定パックの作成時にNetScaler Consoleによって管理されている既存のNetScalerからデータが必要な場合は、StyleBookでこれらのデータソースの使用を開始できます。
StyleBookの定義では、datum
組み込みタイプパラメータを指定します。StyleBookでデータソースタイプを使用できます。StyleBookユーザーは、そのソースからデータを取得するために使用できるデータソースを選択できます。
組み込みデータソースのコレクションなしでの使用
parameters:
- name: selected-adc
label: Select an existing NetScaler
type: datum
required: true
data-source:
type: managed-adc
<!--NeedCopy-->
この例では、datum
パラメータを使用して、NetScaler Consoleによって管理されている任意のNetScalerインスタンスを選択します。managed-adc
組み込みデータソースを使用すると、NetScaler Consoleによって管理されている任意のNetScalerインスタンスからデータを取得できます。
StyleBookでは、選択したNetScalerインスタンスから任意の構成にアクセスできます。また、その構成を使用して、同じNetScalerまたは別のNetScalerインスタンスで構成を作成または更新できます。これは、選択したターゲットNetScalerインスタンスによって異なります。
データソースからのコレクションへのアクセス:
選択したNetScalerインスタンスでコレクションにアクセスするには、次の式を使用します。
$parameters.selected-adc.collections.<collection-name>
<!--NeedCopy-->
例:
$parameters.selected-adc.collections.lbvserver
<!--NeedCopy-->
この式は、選択したNetScalerインスタンス上のlbvserver
エンティティのリストを返します。たとえば、このリストを反復処理して、特定の条件を満たす特定のlbvserver
を選択できます。
コレクションなしのStyleBookの例
name: add-vservers-from-managed-adc-instances
namespace: com.citrix.adc.stylebooks
version: "1.0"
schema-version: "1.0"
import-stylebooks:
-
namespace: netscaler.nitro.config
prefix: ns
version: "10.5"
parameters:
-
name: selected-adc
label: Select a NetScaler instance
type: datum
required: true
data-source:
type: "managed-adc"
components:
-
name: sslvserver-comp
type: ns::sslvserver
repeat: $parameters.selected-adc.collections.lbvserver
repeat-item: lbvs
repeat-condition: $lbvs.attributes.servicetype == "SSL"
properties:
name: $lbvs.attributes.name
ssl2: DISABLED
ssl3: DISABLED
tls1: DISABLED
tls11: ENABLED
tls12: ENABLED
<!--NeedCopy-->
設定パックGUIには、NetScaler Consoleによって管理されているNetScalerインスタンスが表示され、StyleBookユーザーは設定パックの作成または更新時に任意のNetScalerを選択できます。
このStyleBookは、選択したNetScalerを使用し、すべてのlbvserver
エンティティを反復処理します。SSL仮想サーバーを選択し、各仮想サーバーで許可されたSSLプロトコルバージョンを設定します。
次の式を使用すると、NetScalerインスタンス内のlbvserver
エンティティのリストを反復処理できます。
repeat: $parameters.selected-adc.collections.lbvserver
<!--NeedCopy-->
この式では:
-
collections
: NetScalerインスタンス上のすべてのエンティティタイプを指します。例:csvserver
、lbmonitor
、servicegroup
など -
lbvserver
: NetScalerインスタンス内のロードバランシング仮想サーバーエンティティのリストを指します
組み込みデータソースのコレクションありでの使用
parameters:
- name: selected-lbvserver
label: Select an existing lbvserver
type: datum
required: true
data-source:
type: managed-adc
collection: lbvserver
<!--NeedCopy-->
この例では、datum
パラメータを使用して、ユーザーがNetScalerインスタンスと、managed-adc
データソースタイプから特定のlbvserver
の両方を選択できるようにします。
parameters
セクションでコレクションタイプを定義すると、StyleBookユーザーはNetScalerインスタンスと、そのインスタンス上のコレクションから特定のエンティティを選択できます。
選択したアイテムの属性へのアクセス:
StyleBookユーザーが仮想サーバーを選択すると、StyleBook内の次の式で選択したアイテムの任意の属性にアクセスできます。
$parameters.selected-lbvserver.attributes.<attribute-name>
<!--NeedCopy-->
この例では、選択したdatum
はlbvserver
です。したがって、name
、servicetype
、ipv46
など、NetScalerエンティティlbvserver
の任意の属性にアクセスできます。
例:
$parameters.selected-lbvserver.attributes.ipv46
<!--NeedCopy-->
この式は、選択したロードバランシング仮想サーバーのIPを取得します。NetScalerエンティティ(コレクション)とその属性の詳細については、「NetScaler NITRO APIリファレンス」を参照してください。
コレクションから複数のアイテムを選択:
次のparameters
セクションでは、StyleBookユーザーがコレクションの複数のアイテムを選択できるようにします。
parameters:
- name: selected-lbvservers
label: Select existing lbvservers
type: datum[]
required: true
data-source:
type: managed-adc
collection: lbvserver
<!--NeedCopy-->
この例では、datum
パラメータはデータソース配列を定義するために使用されます。ユーザーは、単一のNetScalerインスタンスから、または複数のNetScalerインスタンスにわたって、1つ以上のlbvserver
を選択できます。
以下のコードスニペットは、選択したアイテムとその属性にアクセスする方法を示しています。
components:
- name: sslvserver-comp
type: ns::sslvserver
repeat:
repeat-list: $parameters.selected-lbvservers
repeat-item: vserverObj
properties:
name: $vserverObj.attributes.name
ssl2: DISABLED
ssl3: DISABLED
tls1: DISABLED
tls11: ENABLED
tls12: ENABLED
<!--NeedCopy-->
選択したアイテムの参照によるコレクションへのアクセス:
StyleBookユーザーが管理対象のNetScalerインスタンス上の特定のエンティティを選択できるようにするだけでなく、選択したNetScalerインスタンス上の同じまたは異なるコレクションから任意のエンティティにアクセスすることもできます。そのNetScalerインスタンス上の別のコレクションにアクセスするには、components
セクションで次の式を使用します。
$parameters.selected-lbvserver.datasource.collections.<collection-name>
<!--NeedCopy-->
例:
$parameters.selected-lbvserver.datasource.collections.csvserver
<!--NeedCopy-->
この式は、選択したNetScalerインスタンスからコンテンツスイッチング仮想サーバーのリストを返します。
また、次の式は、lbvserver
とservicegroup
間のすべてのバインディングのリストを返します。
$parameters.selected-lbvserver.datasource.collections.lbvserver_servicegroup_binding
<!--NeedCopy-->
コレクションありのStyleBookの例
以下は、管理対象のNetScalerインスタンスをデータソースとして使用する方法を示すStyleBookの例です。
name: bind-lb-to-servicegroup-using-ADC-as-datasource
namespace: com.citrix.adc.stylebooks
version: "1.1"
display-name: "HTTP/SSL LoadBalancing StyleBook with Service Binding"
description: "このStyleBookは、ユーザーがdatumタイプパラメータを使用してNetScaler上の既存のlbvserverを選択できるようにする、典型的なロードバランシングアプリケーション構成を定義します。次に、選択したlbのサービスグループがNetScaler上に存在しない場合は作成されます。最後に、選択したlbvserverがサービスにバインドされます。"
schema-version: "1.0"
import-stylebooks:
-
namespace: netscaler.nitro.config
prefix: ns
version: "10.5"
parameters:
-
name: selected-vserver
label: "Select an Existing VServer"
description: "Load Balancing Application Vservers to be bound to service on the ADC"
type: datum
required: true
data-source:
type: managed-adc
collection: lbvserver
components:
-
name: servicegroup-discovery-comp
type: object
repeat: $parameters.selected-vserver.datasource.collections.servicegroup
repeat-item: svcgrp
repeat-condition: $svcgrp.attributes.servicegroupname == $parameters.selected-vserver.attributes.name + "-svcgrp"
properties:
servicegroupname: $svcgrp.attributes.servicegroupname
-
name: servicegroup-creation-if-not-exists-comp
type: ns::servicegroup
condition: not exists($components.servicegroup-discovery-comp)
properties:
servicegroupname: $parameters.selected-vserver.attributes.name + "-svcgrp"
servicetype: $parameters.selected-vserver.attributes.servicetype
components:
-
name: lbvserver-servicegroup-binding
type: ns::lbvserver_servicegroup_binding
properties:
name: $parameters.selected-vserver.attributes.name
servicegroupname: $parent.properties.servicegroupname
<!--NeedCopy-->
このStyleBookでは、components
セクションは、選択したロードバランシング仮想サーバー名とsvcgrp
を連結したサービスグループ名をチェックします。
選択したロードバランシング仮想サーバーの名前がlbv1
の場合、このStyleBookはlbv1-svcgrp
という名前のサービスグループをチェックします。見つからない場合は、lbv1-svcgrp
というサービスグループを作成し、lbv1
仮想サーバーにバインドします。
次の式は、NetScalerインスタンス内のサービスグループのリストを取得します。
repeat: $parameters.selected-vserver.datasource.collections.servicegroup
<!--NeedCopy-->
この式では:
-
datasource
: NetScaler Consoleによって管理されている選択したNetScalerインスタンスを指します -
collections
: NetScalerインスタンス内のすべてのエンティティを指します -
servicegroup
: NetScalerインスタンス内のサービスグループを指します
コレクションデータのフィルタリング:
次のparameters
セクションでは、StyleBook定義で組み込みデータソースコレクションにフィルタを指定する方法を説明します。これにより、StyleBookユーザーはフィルタリングされたコレクションから特定のアイテムを選択できます。
parameters:
- name: selected-lbvserver
label: Select an existing lbvserver
type: datum
required: true
data-source:
type: managed-adc
collection: lbvserver
collection-filters:
protocol: SSL
<!--NeedCopy-->
この例では、datum
パラメータは、ユーザーがNetScalerインスタンスと、managed-adc
データソースタイプからSSLプロトコルを持つ特定のlbvserver
の両方を選択できるようにするために使用されます。
StyleBookユーザーが仮想サーバーを選択した後、選択したアイテムの任意の属性は、前のセクションで説明したのと同じ方法でアクセスできます。