ロードバランシング仮想サーバーを作成するためのStyleBook
ヘッダー
name: lb-vserver
namespace: com.example.stylebook
version: "1.0"
display-name: Load Balancing Virtual Server (HTTP)
description: "This stylebook defines a very simple load balancing HTTP virtual server configuration"
schema-version: "1.0"
-
name: このStyleBookの名前。
-
description: このStyleBookが何をするかを定義する説明。この説明はNetScaler Consoleに表示されます。
-
display-name: NetScaler Consoleに表示されるStyleBookの記述名。
-
namespace: 名前空間は、名前の衝突を避けるためにStyleBookの一意の識別子の一部を形成します。
-
schema-version: このリリースでは常に「1.0」の値を取ります。
-
version: StyleBookのバージョン番号。StyleBookを更新するときにバージョン番号を変更できます。
StyleBookのインポート
import-stylebooks:
-
namespace: netscaler.nitro.config
prefix: ns
version: "10.5"
パラメータ
parameters:
-
name: name
label: "Application Name"
description: "Give a name to the application configuration."
type: string
required: true
-
name: vip-ipaddress
label: "Load Balancer IP Address"
description: "The Application VIP that clients access"
type: ipaddress
required: true
-
name: lb-alg
label: LB Algorithm
description: Load Balancing Algorithm
type: string
default: ROUNDROBIN
allowed-values:
- ROUNDROBIN
- LEAST-CONNECTION
-
typeは、これらのパラメーターが取りうる値の型を指します。例えば、nameと
lb-algは文字列値を取ることができ、IP値はIPアドレス型である必要があります。StyleBookのパラメーターは、以下の組み込み型のいずれかになります。 -
string: 文字の配列。長さが指定されていない場合、文字列値は任意の数の文字を取ることができます。ただし、min-lengthおよびmax-length属性を使用することで、文字列型の長さを制限できます。
-
number: 整数。min-valueおよびmax-value属性を使用することで、この型が取りうる最小値と最大値を指定できます。
-
boolean: trueまたはfalseのいずれか。また、すべてのリテラルはYAMLによってブール値と見なされることに注意してください(例:YesまたはNo)。
-
ipaddress: 有効なIPv4またはIPv6アドレスを表す文字列。
-
tcp-port: TCPまたはUDPポートを表す0から65535までの数値。
-
パスワード: 不透明な/秘密の文字列値です。NetScaler Consoleがこのパラメータの値を表示する場合、アスタリスク (*****) として表示されます。
-
certfile: 証明書ファイル。
-
keyfile: 証明書秘密鍵ファイル。
-
file: この型のパラメーターは、ユーザーがファイル(例:証明書またはキーファイル)をアップロードすることを要求します。
-
object: 複数の要素で構成され、これらの各要素はパラメーターです。この型は、複数の関連するパラメーターを1つの親パラメーターの下にグループ化するために使用できます。
-
required: パラメーターが必須かオプションかを示します。trueに設定されている場合、そのパラメーターは必須であり、ユーザーはこのStyleBookを使用して構成を作成する際に、このパラメーターの値を指定する必要があります。デフォルトでは、すべてのパラメーターはオプションです。この例では、nameとipは必須パラメーターであり、lb-algはオプションパラメーターで、そのデフォルト値は「ROUNDROBIN」です。
ipaddressタイプの値を入力でき、lb-algフィールドはドロップダウンリストとして表示され、ROUNDROBINがデフォルト値として選択されています。
コンポーネント
components:
-
name: lbvserver-comp
description: This StyleBook component (a Builtin Nitro StyleBook) builds a NetScaler lbvserver configuration object.
type: ns::lbvserver
properties:
name: $parameters.name
ipv46: $parameters.vip-ipaddress
lbmethod: $parameters.lb-alg
servicetype: HTTP
port: 80
-
組み込みタイプ: このタイプはシステムによって提供され、定義する必要はありません。たとえば、NITROエンティティタイプ
lbvserverまたはservicegroupなどです。この例では、組み込みコンポーネントタイプを使用しています。 -
複合タイプ: このタイプは、作成してNetScaler ConsoleにインポートしたStyleBook、またはNetScaler Consoleに付属しているデフォルトのStyleBookです。複合StyleBookの詳細については、複合StyleBookの作成を参照してください。
lbvserverはこの名前空間内のNITROリソースです。
lbvserverリソースの属性です。利用可能なすべてのNetScaler NITROリソースとその属性の詳細については、NetScaler NITRO REST APIドキュメントを参照してください。
lbvserverリソースの必須属性が含まれており、これらの属性の値を指定できます。この例では、servicetypeとポートに静的な値を指定し、名前、ipv46、およびlbmethodプロパティは入力パラメータから値を取得します。StyleBookの残りの部分では、**$parameters.\<parameter-name\>**式(例: $parameters.ip)を使用して、parametersセクションで定義されたパラメータ名を参照できます。
StyleBookを構築する
name: lb-vserver
namespace: com.example.stylebook
version: "1.0"
display-name: Load Balancing Virtual Server (HTTP)
description: "This stylebook defines a very simple load balancing HTTP virtual server configuration"
schema-version: "1.0"
import-stylebooks:
-
namespace: netscaler.nitro.config
version: "10.5"
prefix: ns
-
namespace: com.citrix.adc.stylebooks
version: "1.0"
prefix: stlb
parameters:
-
name: name
label: "Application Name"
description: "Give a name to the application configuration."
type: string
required: true
-
name: vip-ipaddress
label: "Load Balancer IP Address"
description: "The Application VIP that clients access"
type: ipaddress
required: true
-
name: lb-alg
label: LB Algorithm
description: Load Balancing Algorithm
type: string
default: ROUNDROBIN
allowed-values:
- ROUNDROBIN
- LEAST-CONNECTION
components:
-
name: lbvserver-comp
description: This StyleBook component (a Builtin Nitro StyleBook) builds a NetScaler lbvserver configuration object.
type: ns::lbvserver
properties:
name: $parameters.name
ipv46: $parameters.vip-ipaddress
lbmethod: $parameters.lb-alg
servicetype: HTTP
port: 80