NetScalerインスタンスをデータソースとして使用する
managed-adcは、NetScaler Consoleでデータソースとしてすぐに使用できる組み込みのデータソースタイプです。NetScaler Console内の各管理対象NetScalerインスタンスは、デフォルトでデータソースです。構成パックの作成中にNetScaler Consoleによって管理されている既存のNetScalerからデータが必要な場合は、StyleBookでこれらのデータソースの使用を開始できます。
datum組み込みタイプパラメータを指定します。StyleBookでデータソースタイプを使用できます。StyleBookユーザーは、そのソースからデータを取得するために使用できるデータソースを選択できます。
コレクションなしで組み込みデータソースを使用する
parameters:
- name: selected-adc
label: Select an existing NetScaler
type: datum
required: true
data-source:
type: managed-adc
datumパラメータを使用して、NetScaler Consoleによって管理されている任意のNetScalerインスタンスを選択します。managed-adc組み込みデータソースを使用すると、NetScaler Consoleによって管理されている任意のNetScalerインスタンスからデータを取得できます。
$parameters.selected-adc.collections.<collection-name>
$parameters.selected-adc.collections.lbvserver
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
lbvserverエンティティを反復処理します。SSL仮想サーバーを選択し、各仮想サーバーで許可されるSSLプロトコルバージョンを設定します。
lbvserverエンティティのリストを反復処理できます。
repeat: $parameters.selected-adc.collections.lbvserver
-
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
datumパラメータを使用して、ユーザーがNetScalerインスタンスと、managed-adcデータソースタイプから特定のlbvserverの両方を選択できるようにします。
parametersセクションでコレクションタイプを定義すると、StyleBookユーザーは、NetScalerインスタンスと、そのインスタンス上のコレクションから特定のエンティティを選択できます。
$parameters.selected-lbvserver.attributes.<attribute-name>
datumはlbvserverです。したがって、name、servicetype、ipv46などのNetScalerエンティティlbvserverの任意の属性にアクセスできます。
$parameters.selected-lbvserver.attributes.ipv46
parameters:
- name: selected-lbvservers
label: Select existing lbvservers
type: datum[]
required: true
data-source:
type: managed-adc
collection: 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
componentsセクションで次の式を使用します。
$parameters.selected-lbvserver.datasource.collections.<collection-name>
$parameters.selected-lbvserver.datasource.collections.csvserver
lbvserversとservicegroups間のすべてのバインディングのリストを返します。
$parameters.selected-lbvserver.datasource.collections.lbvserver_servicegroup_binding
コレクションを含む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: "This stylebook defines a typical Load Balanced Application configuration where we allow the user to select an existing lbvserver on the NetScaler using datum type parameter. Then a servicegroup for the selected lb is created if it does not exist on the NetScaler. Finally, the selected lbvserver is bound to the service "
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
componentsセクションが、選択した負荷分散仮想サーバー名とsvcgrpを連結したサービスグループ名をチェックします。
lbv1の場合、このStyleBookはlbv1-svcgrpという名前のサービスグループをチェックします。見つからない場合は、サービスグループlbv1-svcgrpを作成し、lbv1仮想サーバーにバインドします。
repeat: $parameters.selected-vserver.datasource.collections.servicegroup
-
datasource: NetScaler Consoleによって管理されている選択されたNetScalerインスタンスを指します。 -
collections: NetScalerインスタンス内のすべてのエンティティを指します。 -
servicegroup: NetScalerインスタンス内のサービスグループを指します。
parameters:
- name: selected-lbvserver
label: Select an existing lbvserver
type: datum
required: true
data-source:
type: managed-adc
collection: lbvserver
collection-filters:
protocol: SSL