Application Delivery Management

NetScalerインスタンスのデータソースとしての利用

管理対象NetScalerインスタンスをデータソースとして使用できます。managed-adcは、NetScaler Consoleでデータソースとしてすぐに使用できる組み込みデータソースタイプです。NetScaler Console内の各管理対象NetScalerインスタンスは、デフォルトでデータソースです。設定パックの作成時に、NetScaler Consoleによって管理されている既存のNetScalerからデータが必要な場合は、StyleBooksでこれらのデータソースの使用を開始できます。

StyleBook定義では、datum組み込みタイプパラメータを指定します。StyleBookでデータソースタイプを使用できます。StyleBookユーザーは、そのソースからデータを取得するために使用できるデータソースを選択します。

コレクションなしでの組み込みデータソースの利用

parameters:
  -  name: selected-adc
    label: 既存の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: NetScalerインスタンスを選択
      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を選択できます。

コレクションなしの組み込みNetScalerデータソース

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

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

repeat: $parameters.selected-adc.collections.lbvserver
<!--NeedCopy-->
  • collections: NetScalerインスタンス上のすべてのエンティティタイプを指します。例えば、csvserverlbmonitorservicegroupなど
  • lbvserver: NetScalerインスタンス内のロードバランシング仮想サーバーエンティティのリストを指します

コレクションありでの組み込みデータソースの利用

parameters:
  -  name: selected-lbvserver
    label: 既存のlbvserverを選択
    type: datum
    required: true
    data-source:
      type: managed-adc
      collection: lbvserver
<!--NeedCopy-->

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

parametersセクションでコレクションタイプを定義すると、StyleBookユーザーはNetScalerインスタンスと、そのインスタンス上のコレクションから特定のエンティティを選択できます。

コレクションありの組み込みインスタンスデータソース

選択したアイテムの属性へのアクセス:

StyleBookユーザーが仮想サーバーを選択すると、StyleBookの次の式は選択したアイテムの任意の属性にアクセスできます。

$parameters.selected-lbvserver.attributes.<attribute-name>
<!--NeedCopy-->

この例では、選択したdatumlbvserverです。したがって、nameservicetypeipv46など、NetScalerエンティティlbvserverの任意の属性にアクセスできます。

例:

$parameters.selected-lbvserver.attributes.ipv46
<!--NeedCopy-->

この式は、選択したロードバランシング仮想サーバーのIPを取得します。NetScalerエンティティ(コレクション)とその属性の詳細については、NetScaler NITRO APIリファレンスを参照してください。

コレクションからの複数アイテムの選択:

次のパラメータセクションでは、StyleBookユーザーがコレクションの複数のアイテムを選択できます。

parameters:
  -  name: selected-lbvservers
    label: 既存のlbvserverを選択
    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インスタンスからコンテンツスイッチング仮想サーバーのリストを返します。

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

$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ロードバランシングStyleBook"
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: "既存のVServerを選択"
    description: "ADC上のサービスにバインドされるロードバランシングアプリケーションVServer"
    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インスタンス内のサービスグループを指します

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

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

parameters:
  -  name: selected-lbvserver
    label: 既存のlbvserverを選択
    type: datum
    required: true
    data-source:
      type: managed-adc
      collection: lbvserver
      collection-filters:
        protocol: SSL
<!--NeedCopy-->

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

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

NetScalerインスタンスのデータソースとしての利用