パラメータ
このセクションでは、設定を作成するために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番目の部分はネットマスクです。
ネットマスクは、ネットマスク長(
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ネットワークを動的にリストします。設定パック作成フォームでは、次のことができます。
-
リストから必要なIPAMネットワークを選択します。
-
選択した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-portのmin-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