Application Delivery Management

パラメーター

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

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

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

‘name’ 属性

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

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

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

必須:はい

‘label’ 属性

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

必須:いいえ

‘description’ 属性

パラメーターの用途を説明するヘルプ文字列です。ユーザーがこのパラメーターのヘルプアイコンをクリックすると、NetScaler Console 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ネットワーク

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

    NetScaler Console 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: 不透明な/秘密の文字列値を表します。NetScaler Console GUIがこのパラメーターの値を表示する場合、アスタリスク(*****)として表示されます。

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

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

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

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

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

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

  • another StyleBook: このタイプのパラメーターを使用する場合、このパラメーターは、そのタイプを示すStyleBookで定義されたパラメーターの形式で値を持つことを期待します。

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

必須:はい

‘network’ 属性

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

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

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

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

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

例:

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

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

‘key’ 属性

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

StyleBookには、「キー」パラメーターとして定義できるパラメーターは1つだけです。

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

デフォルト値は false です。

必須:いいえ

‘required’ 属性

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

NetScaler Console GUIは、ユーザーにこのパラメーターの有効な値を強制的に提供させます。

デフォルト値は false です。

必須:いいえ

‘allowed-values’ 属性

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

NetScaler Console 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’ 属性

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

必須:いいえ

‘columns’ 属性

この属性は gui 属性のサブ属性です。この属性を使用して、NetScaler Console 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 属性を持つパラメーターに適用されます。設定パックを作成すると、NetScaler Console GUIは allowed-values リストの値をラジオボタンとして表示します。

例:

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

One、Two、および Three の値は、NetScaler Console 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