NetScalerインスタンスをデータソースとして使用する

管理対象の 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 を選択できます。

収集なしの組み込み NetScaler データ ソース

この StyleBook は、選択された NetScaler を使用し、すべての lbvserver エンティティを反復処理します。 SSL 仮想サーバーを選択し、各仮想サーバーで許可される SSL プロトコル バージョンを設定します。

次の式を使用すると、NetScaler インスタンス内の lbvserver エンティティのリストを反復処理できます。

繰り返し: $parameters.selected-adc.collections.lbvserver
<!--NeedCopy-->

コレクションで組み込みデータソースを使用する

パラメータ:
  -  名前: 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 の任意の属性 ( nameservicetypeipv46など) にアクセスできます。

例:

$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 インスタンスからコンテンツ スイッチング仮想サーバーのリストを返します。

また、次の式は、 lbvserversservicegroups間のすべてのバインディングのリストを返します。

$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-->

この表現では:

コレクションデータのフィルタリング:

次のパラメータ セクションでは、StyleBook 定義の組み込みデータ ソース コレクションにフィルターを指定する方法について説明します。 これにより、StyleBook ユーザーはフィルタリングされたコレクションから特定のアイテムを選択できるようになります。

パラメーター:
  -  名前: selected-lbvserver
    ラベル: 既存の lbvserver を選択
    タイプ: datum
    必須: true
    データソース:
      タイプ: managed-adc
      コレクション: lbvserver
      コレクションフィルター:
        プロトコル: SSL

<!--NeedCopy-->

この例では、datum パラメータを使用して、ユーザーが managed-adc データ ソース タイプから NetScaler インスタンスと SSL プロトコルを持つ特定の lbvserver の両方を選択できるようにしています。

StyleBook ユーザーが仮想サーバーを選択すると、前のセクションで説明したのと同じ方法で、選択したアイテムの任意の属性にアクセスできるようになります。