StyleBookの設定

ADC インスタンスをデータソースとして使用

マネージド ADC インスタンスをデータソースとして使用できます。 managed-adc は組み込みのデータソースタイプで、ADM のデータソースとして簡単に使用できます。ADM 内の各マネージド ADC インスタンスは、デフォルトでデータソースです。構成パックの作成中にADMが管理する既存のADCからのデータが必要な場合は、StyleBooksでこれらのデータソースを使い始めることができます。

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

収集せずに組み込みデータソースを使用する

parameters:
  -
    name: selected-adc
    label: Select an existing lbvserver
    type: datum
    required: true
    data-source:
      type: managed-adc
<!--NeedCopy-->

この例では、 datum パラメータを使用して ADM が管理する任意の ADC インスタンスを選択します。 managed-adc 組み込みのデータソースにより、Citrix ADM が管理する任意のADCインスタンスからデータを取得できます。

StyleBookでは、選択したADCインスタンスから任意の構成にアクセスできます。また、その構成を使用して、同じ ADC または別の ADC インスタンスで構成を作成または更新できます。構成は、選択したターゲット ADC インスタンスによって異なります。

データソースからコレクションを選択してください:

選択した ADC インスタンスで、コレクションにアクセスするには、次の式を使用します。

$parameters.selected-adc.collections.<collection-name>
<!--NeedCopy-->

例:

$parameters.selected-adc.collections.lbvserver
<!--NeedCopy-->

この式は、選択した ADC インスタンスのlbvserverのリストを返します。たとえば、このリストを繰り返し処理して、 特定の条件を満たす特定のlbvserverを選択できます。

コレクションなしのスタイルブックの例

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 custom datasource environment
      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にはADMによる管理対象ADCインスタンスが表示され、StyleBookユーザーは構成パックの作成または更新時に任意のADCを選択できます。

収集なしの内蔵ADCデータソース

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

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

repeat: $parameters.selected-adc.collections.lbvserver
<!--NeedCopy-->
  • collections: ADC インスタンスのエンティティタイプを指します。

  • lbvserver: ADC インスタンス内の負荷分散仮想サーバーのリストを参照します。

条件 (servicetype == SSL) を満たす各lbvserverについて、仮想サーバーのSSL設定を更新して特定のSSLバージョンを許可します。

組み込みデータソースとコレクションの使用

parameters:
  -
    name: selected-lbvserver
    label: Select an existing ADC
    type: datum
    required: true
    data-source:
      type: managed-adc
      collection: lbvserver
<!--NeedCopy-->

この例では、 datumパラメータを使用してADCインスタンスととlbvserverの両方をmanaged-adcデータソースタイプから選択します。

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

コレクション付きのビルトインADCインスタンスデータソース

コレクションの属性を選択:

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

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

この例では、選択されたdatumlbvserverです 。そのため、lbvservernameservicetypeipv46など 、ADC エンティティの任意の属性にアクセスできます。

例:

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

この式は、選択した負荷分散仮想サーバーの名前を取得します。ADCエンティティ(コレクション)とその属性の詳細については、「 Citrix ADC NITRO APIリファレンス」を参照してください。

コレクションのリストを選択してください:

StyleBookユーザーが選択したアイテムとは別に、選択したADCインスタンス上の同じまたは異なるコレクションのアイテムにもアクセスできます。その ADC インスタンスの別のコレクションにアクセスするには、 components セクションで次の式を使用します。

$parameters.selected-lbvserver.datasource.collections.<collection-name>
<!--NeedCopy-->

例:

$parameters.selected-lbvserver.datasource.collections.csvserver
<!--NeedCopy-->

この式は、選択した ADC インスタンスのコンテンツスイッチング仮想サーバーのリストを返します。

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

$parameters.selected-lbvserver.datasource.collections.lbvserver_servicegroup_binding
<!--NeedCopy-->

コレクションを含むスタイルブックの例

以下は、マネージドADCインスタンスをデータソースとして使用する方法を示す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 ADC using datum type parameter. Then a servicegroup for the selected lb is created if it does not exist on the ADC. 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
  -
    name: services
    label: Services
    type: object[]
    required: true
    parameters:
      -
        name: ip
        label: IP address
        type: ipaddress
        required: true
      -
        name: port
        label: Port
        type: tcp-port
        required: true

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
  -
    name: servicegroupmember-comp
    type: ns::servicegroup_servicegroupmember_binding
    repeat: $parameters.services
    repeat-item: service
    properties:
      servicegroupname: if-then-else($components.servicegroup-discovery-comp, $components.servicegroup-discovery-comp.properties.servicegroupname, $components.servicegroup-creation-if-not-exists-comp.properties.servicegroupname)
      ip: $service.ip
      port: $service.port
<!--NeedCopy-->

このStyleBookでは、componentsセクションは、svcgrpと連結された選択した負荷分散仮想サーバー名と一致するサービスグループ名を確認します 。

選択した負荷分散仮想サーバーの名前がlbv1の場合 、 このStyleBookは名前lbv1-svcgrpのサービスグループをチェックします。見つからない場合は、 lbv1-svcgrp サービスグループを作成し、 lbv1 仮想サーバーにバインドします。

次の式は、ADC インスタンス内のサービスグループのリストを取得します。

repeat: $parameters.selected-vserver.datasource.collections.servicegroup
<!--NeedCopy-->
  • datasource: ADM によって管理される、選択した ADC インスタンスを指します。

  • collections: ADC インスタンス内のエンティティを指します。

  • servicegroup: ADC インスタンス内のサービスグループを指します。

ADC インスタンスをデータソースとして使用