Application Delivery Management

パラメータ

このセクションでは、設定を作成するためにStyleBookで必要となるすべてのパラメータを定義できます。StyleBookが受け取る入力を記述します。このセクションはオプションですが、ほとんどのStyleBookで必要となる場合があります。パラメータセクションは、StyleBookを使用してNetScalerインスタンスで設定を作成するユーザー向けのフィールドを定義するものと考えることができます。

StyleBookをNetScaler® ADMにインポートして設定を作成すると、GUIはこのStyleBookのセクションを使用してフォームを表示します。このフォームは、定義されたパラメータ値の入力を受け取ります。

次のセクションでは、このセクションの各パラメータに指定する必要がある属性について説明します。

‘name’

定義するパラメータの名前。英数字の名前を指定できます。

名前はアルファベットで始まり、追加のアルファベット、数字、ハイフン(-)、またはアンダースコア(_)を含めることができます。

StyleBookを作成する際、この「name」属性を使用して、$parameters.<name>という表記で他のセクションのパラメータを参照できます。

必須?はい

‘label’

ADM GUIでこのパラメータの名前として表示される文字列。

必須?いいえ

‘description’

パラメータの用途を説明するヘルプ文字列。ユーザーがこのパラメータのヘルプアイコンをクリックすると、ADM GUIにこのテキストが表示されます。

必須?いいえ

‘type’

これらのパラメータが受け取ることができる値のタイプ。パラメータは、次のいずれかの組み込みタイプにすることができます。

  • string: 文字の配列。長さが指定されていない場合、文字列値は任意の数の文字を受け取ることができます。ただし、min-length属性とmax-length属性を使用して、文字列タイプの長さを制限できます。

  • number: 整数。min-value属性とmax-value属性を使用して、このタイプが受け取ることができる最小値と最大値を指定できます。

  • boolean: trueまたはfalseのいずれか。YAMLはすべてのリテラルをブール値と見なします(例:YesまたはNo)。

  • ipaddress: 有効なIPv4またはIPv6アドレスを表す文字列。

  • ipnetwork: 2つの部分があります。最初の部分はIPアドレスで、2番目の部分はネットマスクです。

    IP network

    ネットマスクは、ネットマスク長(netmask-len)またはネットマスクIPアドレス(netmask_ip)で構成されます。ネットマスク長は、IPv4アドレスの場合は0~32、IPv6アドレスの場合は0~128の整数です。これは、ネットワーク内のIPアドレス数を決定するために使用されます。

    NetScaler ADM GUIから設定パックを作成または更新する際、次のいずれかのアクションを実行できます。

    • ネットマスク長を有効にし、IPアドレスとネットマスク長を入力します。
    • ネットマスク長を無効にし、IPアドレスとネットマスクIPアドレスを入力します。

    APIでは、次の例に示すように、ネットマスク長とネットマスクIPアドレスが単一の値として利用できます。

    例:

       Content-Type: application/json
       Accept: application/json
       {
       “configpack”:
       {
             “stylebook”: {
             “namespace”: “com.example.stylebook”,
             “version”:“1.0”,
             “name”: “ipnetwork-example”,
             ..
             },
             “parameters”: {
                “name: “test-app”,
                 “virtual-ip”: “212.100.30.0/255.255.255.0”,
             },
             “targets”:
             [
             ]
       }
       }
       <!--NeedCopy-->
    
  • tcp-port: TCPまたはUDPポートを表す0から65535までの数値。

  • password: 不透明な/秘密の文字列値を表します。ADM GUIがこのパラメータの値を表示する場合、アスタリスク(*****)として表示されます。

  • certfile: 証明書ファイルを表します。この値を使用すると、ADM GUIを使用してStyleBook設定を作成する際に、ローカルシステムからファイルを直接アップロードできます。アップロードされた証明書ファイルは、ADMのディレクトリ/var/mps/tenants/\<tenant_path>/ns_ssl_certsに保存されます。

    証明書ファイルは、ADMによって管理される証明書のリストに追加されます。

  • keyfile: 証明書キーファイルを表します。この値を使用すると、ADM GUIを使用してStyleBook設定を作成する際に、ローカルシステムからファイルを直接アップロードできます。アップロードされた証明書ファイルは、ADMのディレクトリ/var/mps/tenants/\<tenant_path>/ns_ssl_keysに保存されます。

    証明書キーファイルは、ADMによって管理される証明書キーのリストに追加されます。

  • file: ファイルを表します。

  • object: このタイプは、いくつかの関連するパラメータを親要素の下にグループ化する場合に使用されます。親パラメータのタイプを「object」として指定します。「object」タイプのパラメータは、含まれるパラメータを記述するためのネストされた「parameters」セクションを持つことができます。

  • another StyleBook: このタイプのパラメータを使用する場合、このパラメータは、そのタイプを示すStyleBookで定義されたパラメータの形式で値を受け取ります。

パラメータは、タイプのリストであるtypeを持つこともできます。そのためには、タイプの末尾に[]を追加します。たとえば、type属性がstring[]の場合、このパラメータは文字列のリストを入力として受け取ります。このStyleBookから設定を作成する際、このパラメータに1つ、2つ、または複数の文字列を提供できます。

必須?はい

‘network’

type: ipaddressの場合、network属性を指定して、ADM IPAMネットワークからIPアドレスを自動割り当てできます。

StyleBook設定を作成すると、ADMはnetwork属性からIPアドレスを自動割り当てします。

例:

      name: virtual-ip
      label: "Load Balancer IP Address"
      type: ipaddress
      network: "network-1"
      required: true
<!--NeedCopy-->

この例では、virtual-ipフィールドはnetwork-1からIPアドレスを自動割り当てします。設定が削除されると、IPアドレスはネットワークに解放されます。

‘dynamic-allocation’

dynamic-allocation属性は、type:ipaddressのパラメータ定義に追加されます。この属性を使用して、ADM IPAMネットワークを動的にリストします。この属性は、入力としてtrueまたはfalseのいずれかを受け取ることができます。type: ipaddressの場合、dynamic-allocation: true属性を指定して、ADM内のADM IPAMネットワークを動的にリストします。設定パック作成フォームでは、次のことができます。

  1. リストから必要なIPAMネットワークを選択します。

  2. 選択したIPAMネットワークから割り当てたいIPアドレスを指定します。

    IPアドレスが指定されていない場合、ADMは選択したIPAMネットワークからIPアドレスを自動割り当てします。

例:

  -
    name: virtual-ip
    label: "Load Balancer IP Address"
    type: ipaddress
    dynamic-allocation: true
    required: true
<!--NeedCopy-->

この例では、virtual-ipフィールドはADM内のADM IPAMネットワークをリストします。リストからネットワークを選択して、そのネットワークからIPアドレスを自動割り当てします。設定が削除されると、IPアドレスはネットワークに解放されます。

‘key’

このパラメータがStyleBookのキーパラメータであるかどうかを示すために、trueまたはfalseを指定します。

StyleBookには、「キー」パラメータとして定義されたパラメータを1つだけ持つことができます。

同じStyleBookから異なる設定を作成する場合(同じまたは異なるADCインスタンス上)、各設定はこのパラメータに対して異なる/一意の値を持つことになります。

デフォルト値はfalseです。

必須?いいえ

‘required’

パラメータが必須かオプションかを示すために、trueまたはfalseを指定します。trueに設定されている場合、そのパラメータは必須であり、ユーザーは設定を作成する際にこのパラメータの値を指定する必要があります。

ADM GUIは、ユーザーにこのパラメータの有効な値を提供するよう強制します。

デフォルト値はfalseです。

必須?いいえ

‘allowed-values’

この属性を使用して、タイプが「string」に設定されている場合に、パラメータの有効な値のリストを定義します。

ADM GUIから設定を作成する際、ユーザーはこのリストからパラメータ値を選択するよう求められます。

リスト値をラジオオプションとして表示する場合は、layout属性を設定します。

例1:

-
      name: ipaddress
      type: string
      allowed-values:
            -  SOURCEIP
            -  DEST IP
            -  NONE
<!--NeedCopy-->

例2:

-
      name: TCP Port
      type: tcp-port
      allowed-values:
            -  80
            -  81
            -  8080
<!--NeedCopy-->

例3:

tcp-portsのリスト。リストの各要素はallowed-valuesで指定された値のみを持つことができます。

-
      name: tcpports
      type: tcp-port[]
      allowed-values:
            -  80
            -  81
            -  8080
            -  8081
<!--NeedCopy-->

必須?いいえ

‘default’

この属性を使用して、オプションのパラメータにデフォルト値を割り当てます。ユーザーが値を指定せずに設定を作成した場合、デフォルト値が使用されます。

次の条件が満たされた場合、パラメータは値を受け取りません。

  • パラメータにデフォルト値がない。

  • ユーザーがパラメータの値を指定しない。

例1:

-
      name: timeout
      type: number
      default: 20
<!--NeedCopy-->

例2:

パラメータのデフォルト値をリストするには:

-
      name: protocols
      type: string[]
      default:
            -  TCP
            -  UDP
            -  IP
<!--NeedCopy-->

例3:

-
      name: timeout
      type: number
      default: 20
<!--NeedCopy-->

例4:

-
      name: tcpport
      type: tcp-port
      default: 20
<!--NeedCopy-->

必須?いいえ

‘pattern’

この属性を使用して、パラメータのタイプが「string」の場合に、このパラメータの有効な値のパターン(正規表現)を定義します。

:

-
      name: appname
      type: string
      pattern: "[a-z]+"
<!--NeedCopy-->

必須?いいえ

‘min-value’

この属性を使用して、numberまたはtcp-portタイプのパラメータの最小値を定義します。

:

-
      name: audio-port
      type: tcp-port
      min-value: 5000
<!--NeedCopy-->

数値のmin-valueは負の値にすることができます。ただし、tcp-portmin-valueは正の値でなければなりません。

必須?いいえ

‘max-value’

この属性を使用して、numberまたはtcp-portタイプのパラメータの最大値を定義します。

定義されている場合、最大値が最小値よりも大きいことを確認してください。

:

-
      name: audio-port
      type: tcp-port
      min-value: 5000
      max-value: 15000
<!--NeedCopy-->

必須?いいえ

‘min-length’

この属性を使用して、「string」タイプのパラメータに受け入れられる値の最小長を定義します。

値として定義された文字の最小長が0以上であることを確認してください。

:

-
      name: appname
      type: string
      min-length: 3
<!--NeedCopy-->

必須?いいえ

‘max-length’

この属性を使用して、「string」タイプのパラメータに受け入れられる値の最大長を定義します。

値の最大長がmin-lengthで定義された文字の長さ以上であることを確認してください。

:

-
      name: appname
      type: string
      max-length: 64
<!--NeedCopy-->

必須?いいえ

‘min-items’

この属性を使用して、リストであるパラメータの最小項目数を定義します。

最小項目数が0以上であることを確認してください。

:

-
      name: server-ips
      type: ipaddress[]
      min-items: 2
<!--NeedCopy-->

必須?いいえ

‘max-items’

この属性を使用して、リストであるパラメータの最大項目数を定義します。

定義されている場合、最大項目数が最小項目数よりも大きいことを確認してください。

:

-
      name: server-ips
      type: ipaddress[]
      min-items: 2
      max-items: 250
<!--NeedCopy-->

必須?いいえ

‘gui’

この属性を使用して、ADM GUIでのパラメータのレイアウトをカスタマイズします。

必須?いいえ

‘columns’

この属性はgui属性のサブ属性です。この属性を使用して、ADM GUIでtype: object[]パラメータを表示する列数を定義します。

必須?いいえ

‘updatable’

この属性はgui属性のサブ属性です。この属性を使用して、設定作成後にパラメータを更新できるかどうかを指定します。この属性は、string、boolean、numberなどの単純なパラメータタイプにのみ設定します。

値がfalseに設定されている場合、設定を更新する際にパラメータフィールドはグレー表示されます。

必須?いいえ

‘collapse_pane’

この属性はgui属性のサブ属性です。この属性を使用して、このオブジェクトパラメータのレイアウトを定義するペインを折りたたみ可能にするかどうかを指定します。

値がtrueに設定されている場合、ユーザーはこの親パラメータの下にある子パラメータを展開または折りたたむことができます。

:

gui:

 collapse_pane: true

 columns: 2
<!--NeedCopy-->

完全なパラメータセクションの例:


parameters:

   -

      name: name

      label: Name

      description: Name of the application

      type: string

      required: true

   -

      name: ip

      label: IP Address

      description: The virtual IP address used for this application

      type: ipaddress

      required: true

   -

      name: svc-servers

      label: Servers

      type: object\[\]

      required: true

      parameters:

        -

              name: svc-ip

              label: Server IP

              description: The IP address of the server

              type: ipaddress

              required: true

        -

              name: svc-port

              label: Server Port

              description: The TCP port of the server

              type: tcp-port

              default: 80

        -

              name: lb-alg

              label: LoadBalancing Algorithm

              type: string

              allowed-values:

                 -  ROUNDROBIN

                 -  LEASTCONNECTION

              default: ROUNDROBIN

        -

              name: enable-healthcheck

              label: Enable HealthCheck?

              type: boolean

              default: true
<!--NeedCopy-->

以下は、リストのすべての属性と、以前のセクションで説明した値を定義する例です。


        -
              name: features-list

              type: string[]

              min-length: 1

              max-length: 3

              min-items: 1

              max-items: 3

              pattern: "\[A-Z\]+"

              allowed-values:

                -  SP

                -  LB

                -  CS

              default:

                -  LB
<!--NeedCopy-->

‘layout’

この属性はgui属性のサブ属性です。この属性を使用して、リスト値をラジオボタンとして表示します。StyleBook定義のパラメータセクションでlayout属性をradioに設定します。これは、allowed-values属性を持つパラメータに適用されます。設定パックを作成すると、ADM GUIはallowed-valuesリストの値をラジオボタンとして表示します。

例:

-
    gui:
        layout: radio
    allowed-values:
        -  One
        -  Two
        -  Three
<!--NeedCopy-->

One、Two、Threeの値は、ADM GUIでラジオボタンとして表示されます。

‘dependent-parameters’

この属性はgui属性のサブ属性です。これは、別のパラメータで指定された値に基づいて、StyleBook設定フォームでのパラメータの表示または初期値を動的に制御します。

フォーム上のパラメータの動作を制御するソースパラメータにこの属性を指定します。他のパラメータを制御する複数の条件を含めることができます。たとえば、ソースパラメータprotocolは、protocolパラメータ値がSSLの場合にのみ表示される依存パラメータcertificateを持つことができます。

各条件には、次の属性を含めることができます。

  • target-parameter: この条件が適用されるターゲットパラメータを指定します。

  • matching-values: アクションをトリガーするソースパラメータの値のリストを指定します。

  • action: ターゲットパラメータに対して次のいずれかのアクションを指定します。

    • read-only: パラメータが読み取り専用になります。

    • show: パラメータが非表示の場合、フォームに表示されます。

    • hide: パラメータがフォームから削除されます。

    • set-value: パラメータ値がvalue属性で指定された値に設定されます。

  • value: アクションがset-valueの場合のターゲットパラメータの値。

ユーザー入力がソースパラメータで指定された値と一致すると、ターゲットパラメータの表示または値は指定されたアクションに従って変更されます。

例:

 -
    name: lb-virtual-port
    label: "Load Balanced App Virtual Port"
    description: "TCP port representing the Load Balanced application"
    type: tcp-port
    gui:
      updatable: false
      dependent-parameters:
            -
              matching-values:
                -  80
              target-parameter: $parameters.lb-service-type
              action: set-value
              allowed-values:
              -  HTTP
              -  TCP
              -  UDP

    default: 80

<!--NeedCopy-->

この例では、依存パラメータはlb-virtual-portパラメータ(ソースパラメータ)の下に指定されています。

ソースパラメータ値が80に設定されると、lb-service-typeパラメータはset-valueアクションをトリガーします。その結果、ユーザーは次のいずれかのオプションを選択できます。

  • HTTP
  • TCP
  • UDP