管理対象の NetScaler インスタンスをデータ ソースとして使用できます。 managed-adc
は、NetScaler コンソールのデータ ソースとしてすぐに使用できる組み込みのデータ ソース タイプです。 NetScaler コンソールで管理される各 NetScaler インスタンスは、デフォルトでデータ ソースになります。 構成パックの作成中に、NetScaler Console によって管理されている既存の NetScaler からのデータが必要な場合は、StyleBook でこれらのデータ ソースの使用を開始できます。
StyleBook 定義で、 datum
組み込み型パラメータを指定します。 StyleBook でデータ ソース タイプを使用できます。 StyleBook ユーザーは、そのソースからデータを取得するために使用できるデータ ソースを選択できます。
パラメータ:
- 名前: selected-adc
ラベル: 既存の NetScaler を選択
タイプ: datum
必須: true
データソース:
タイプ: managed-adc
<!--NeedCopy-->
この例では、 データ
パラメータを使用して、NetScaler コンソールによって管理される任意の NetScaler インスタンスを選択します。 managed-adc
組み込みデータ ソースを使用すると、NetScaler コンソールによって管理される任意の NetScaler インスタンスからデータを取得できます。
StyleBook では、選択した NetScaler インスタンスの任意の構成にアクセスできます。 また、選択したターゲット NetScaler インスタンスに応じて、同じ NetScaler または別の NetScaler インスタンスで構成を作成または更新するときにその構成を使用できます。
データソースからコレクションにアクセスします:
選択した NetScaler インスタンスでコレクションにアクセスするには、次の式を使用します。
$parameters.selected-adc.collections.<collection-name>
<!--NeedCopy-->
例:
$parameters.selected-adc.collections.lbvserver
<!--NeedCopy-->
この式は、選択した NetScaler インスタンス上の lbvserver
エンティティのリストを返します。 たとえば、このリストを反復処理して、特定の条件を満たす特定の lbvserver
を選択できます。
名前: add-vservers-from-managed-adc-instances
名前空間: com.citrix.adc.stylebooks
バージョン: "1.0"
スキーマバージョン: "1.0"
import-stylebooks:
-
名前空間: netscaler.nitro.config
プレフィックス: ns
バージョン: "10.5"
パラメーター:
-
名前: selected-adc
ラベル: NetScaler インスタンスを選択
タイプ: datum
必須: true
データ ソース:
タイプ: "managed-adc"
コンポーネント:
-
名前: sslvserver-comp
タイプ: ns::sslvserver
繰り返し: $parameters.selected-adc.collections.lbvserver
繰り返し項目: lbvs
繰り返し条件: $lbvs.attributes.servicetype == "SSL"
プロパティ:
名前: $lbvs.attributes.name
ssl2: 無効
ssl3: 無効
tls1: 無効
tls11: 有効
tls12: 有効
<!--NeedCopy-->
構成パックの GUI には、NetScaler コンソールによって管理されている NetScaler インスタンスが表示され、StyleBook ユーザーは構成パックを作成または更新するときに任意の NetScaler を選択できます。
この StyleBook は、選択された NetScaler を使用し、すべての lbvserver
エンティティを反復処理します。 SSL 仮想サーバーを選択し、各仮想サーバーで許可される SSL プロトコル バージョンを設定します。
次の式を使用すると、NetScaler インスタンス内の lbvserver
エンティティのリストを反復処理できます。
繰り返し: $parameters.selected-adc.collections.lbvserver
<!--NeedCopy-->
コレクション
: NetScaler インスタンス上のすべてのエンティティ タイプを参照します。 たとえば、 csvserver
、 lbmonitor
、 servicegroup
などです。
lbvserver
: NetScaler インスタンス内の負荷分散仮想サーバー エンティティのリストを参照します。
パラメータ:
- 名前: selected-lbvserver
ラベル: 既存の lbvserver を選択
タイプ: datum
必須: true
データソース:
タイプ: managed-adc
コレクション: lbvserver
<!--NeedCopy-->
この例では、 datum
パラメータを使用して、ユーザーが NetScaler インスタンスと、 managed-adc
データ ソース タイプから特定の lbvserver
の両方を選択できるようにしています。
パラメータ
セクションでコレクション タイプを定義すると、StyleBook ユーザーは NetScaler インスタンスと、そのインスタンス上のコレクションから特定のエンティティを選択できます。
選択した項目の属性にアクセスします:
StyleBook ユーザーが仮想サーバーを選択すると、StyleBook 内の次の式は選択した項目の任意の属性にアクセスできるようになります。
$parameters.selected-lbvserver.attributes.<attribute-name>
<!--NeedCopy-->
この例では、選択された データム
は lbvserver
です。 したがって、NetScaler エンティティ lbvserver
の任意の属性 ( name
、 servicetype
、 ipv46
など) にアクセスできます。
例:
$parameters.selected-lbvserver.attributes.ipv46
<!--NeedCopy-->
この式は、選択した負荷分散仮想サーバーの IP を取得します。 NetScaler エンティティ (コレクション) とその属性の詳細については、 NetScaler NITRO API リファレンスを参照してください。
コレクションから複数の項目を選択します。
次のパラメータ セクションを使用すると、StyleBook ユーザーはコレクションの複数の項目を選択できます。
パラメーター:
- 名前: selected-lbvservers
ラベル: 既存の lbvservers を選択
タイプ: datum[]
必須: true
データソース:
タイプ: managed-adc
コレクション: lbvserver
<!--NeedCopy-->
この例では、datum パラメータを使用してデータ ソース配列を定義します。 ユーザーは、単一の NetScaler インスタンスまたは複数の NetScaler インスタンスから 1 つ以上の lbvservers を選択できます。
以下のコード スニペットは、選択した項目とその属性にアクセスする方法を示しています。
コンポーネント:
- 名前: sslvserver-comp
タイプ: ns::sslvserver
繰り返し:
繰り返しリスト: $parameters.selected-lbvservers
繰り返し項目: vserverObj
プロパティ:
名前: $vserverObj.attributes.name
ssl2: 無効
ssl3: 無効
tls1: 無効
tls11: 有効
tls12: 有効
<!--NeedCopy-->
選択したアイテムの参照でコレクションにアクセスします:
StyleBook ユーザーが管理対象の NetScaler インスタンス上の特定のエンティティを選択できるようにするだけでなく、選択した NetScaler インスタンス上の同じコレクションまたは異なるコレクションから任意のエンティティにアクセスすることもできます。 その NetScaler インスタンス上の別のコレクションにアクセスするには、 components
セクションで次の式を使用します。
$parameters.selected-lbvserver.datasource.collections.<collection-name>
<!--NeedCopy-->
例:
$parameters.selected-lbvserver.datasource.collections.csvserver
<!--NeedCopy-->
この式は、選択した NetScaler インスタンスからコンテンツ スイッチング仮想サーバーのリストを返します。
また、次の式は、 lbvservers
と servicegroups
間のすべてのバインディングのリストを返します。
$parameters.selected-lbvserver.datasource.collections.lbvserver_servicegroup_binding
<!--NeedCopy-->
以下は、管理対象 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: "このスタイルブックは、ユーザーがデータ タイプ パラメータを使用して 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:
タイプ: managed-adc
コレクション: lbvserver
コンポーネント:
-
名前: servicegroup-discovery-comp
タイプ: object
繰り返し: $parameters.selected-vserver.datasource.collections.servicegroup
繰り返し項目: svcgrp
繰り返し条件: $svcgrp.attributes.servicegroupname == $parameters.selected-vserver.attributes.name + "-svcgrp"
プロパティ:
サービスグループ名: $svcgrp.attributes.servicegroupname
-
名前: servicegroup-creation-if-not-exists-comp
タイプ: ns::servicegroup
条件: 存在しない($components.servicegroup-discovery-comp)
プロパティ:
サービスグループ名: $parameters.selected-vserver.attributes.name + "-svcgrp"
サービスタイプ: $parameters.selected-vserver.attributes.servicetype
コンポーネント:
-
名前: lbvserver-servicegroup-binding
タイプ: ns::lbvserver_servicegroup_binding
プロパティ:
名前: $parameters.selected-vserver.attributes.name
サービスグループ名: $parent.properties.servicegroupname
<!--NeedCopy-->
このスタイルブックでは、 components
セクションで、 svcgrp
と連結された、選択した負荷分散仮想サーバー名と一致するサービス グループ名をチェックします。
選択した負荷分散仮想サーバーの名前が lbv1
の場合、この StyleBook は lbv1-svcgrp
という名前のサービス グループをチェックします。 見つからない場合は、サービス グループ lbv1-svcgrp
を作成し、 lbv1
仮想サーバーにバインドします。
次の式は、NetScaler インスタンス内のサービス グループのリストを取得します。
繰り返し: $parameters.selected-vserver.datasource.collections.servicegroup
<!--NeedCopy-->
この表現では:
データソース
: NetScaler コンソールによって管理される、選択された NetScaler インスタンスを参照します。
コレクション
: NetScaler インスタンス内のすべてのエンティティを参照します。
servicegroup
: NetScaler インスタンス内のサービス グループを参照します。
コレクションデータのフィルタリング:
次のパラメータ セクションでは、StyleBook 定義の組み込みデータ ソース コレクションにフィルターを指定する方法について説明します。 これにより、StyleBook ユーザーはフィルタリングされたコレクションから特定のアイテムを選択できるようになります。
パラメーター:
- 名前: selected-lbvserver
ラベル: 既存の lbvserver を選択
タイプ: datum
必須: true
データソース:
タイプ: managed-adc
コレクション: lbvserver
コレクションフィルター:
プロトコル: SSL
<!--NeedCopy-->
この例では、datum パラメータを使用して、ユーザーが managed-adc データ ソース タイプから NetScaler インスタンスと SSL プロトコルを持つ特定の lbvserver の両方を選択できるようにしています。
StyleBook ユーザーが仮想サーバーを選択すると、前のセクションで説明したのと同じ方法で、選択したアイテムの任意の属性にアクセスできるようになります。