複合StyleBookの作成
StyleBookの重要かつ便利な特徴の1つは、別のStyleBookの構築ブロックとして使用できる点です。StyleBookは別のStyleBookにインポートできます。そのStyleBookは、Nitroに組み込まれているStyleBookと同様に、 2つ目のStyleBookのコンポーネントで使用されるタイプと呼ぶことができます 。
たとえば、前のセクションで作成したbasic-lb-configStyleBookを使用して、コンポジットサンプルという別のStyleBookを作成できます。「basic-lb-config」StyleBookを使用するには、新しいStyleBook内のimport-stylebooksセクションで、このStyleBookをインポートする必要があります。
StyleBookを構築する
新しいStyleBookは、次のようになります。
name: composite-example
namespace: com.example.stylebooks
version: "0.1"
display-name: Load Balancing Virtual Server (HTTP/RoundRobin)
description: This StyleBook defines a RoundRobin load balancing configuration with a monitor.
schema-version: "1.0"
import-stylebooks:
-
namespace: netscaler.nitro.config
version: "10.5"
prefix: ns
-
namespace: com.example.stylebooks
version: "0.1"
prefix: stlb
parameters:
-
name: name
type: string
label: Application Name
description: Give a name to the application configuration.
required: true
-
name: ip
type: ipaddress
label: Application Virtual IP (VIP)
description: The Application VIP that clients access
required: true
-
name: svc-servers
type: ipaddress[]
label: Application Server IPs
description: The IP addresses of all the servers of this application
required: true
-
name: response-code
type: string[]
label: List of Response Codes
description: List of Response Codes - Provide a list of response codes in integer.
components:
-
name: basic-lb-comp
type: stlb::basic-lb-config
description: This component's type is another StyleBook that builds the NetScaler lbvserver, servicegroups and services configuration objects.
properties:
name: $parameters.name
ip: $parameters.ip
svc-servers: $parameters.svc-servers
-
name: monit-comp
type: ns::lbmonitor
description: This component is a basic Nitro type (a Builtin StyleBook) that builds the NetScaler monitor configuration object.
properties:
monitorname: $parameters.name + "-mon"
type: HTTP
respcode: $parameters.response-code
httprequest: "'GET /'"
lrtm: ENABLED
secure: "YES"
components:
-
name: monit-svcgrp-bind-comp
type: ns::servicegroup_lbmonitor_binding
properties:
servicegroupname: $components.basic-lb-comp.outputs.servicegroup-comp.properties.servicegroupname
monitor_name: $parent.properties.monitorname
<!--NeedCopy-->
import-stylebooksセクションで、名前空間とバージョンを指定してbasic-lb-config StyleBookをインポートします。このStyleBookは、プレフィックス「stlb」で参照できます。
Componentsセクションでは、2つのコンポーネントが定義されています。 最初のコンポーネントはstlb:: basic-lb-configタイプで、「basic-lb-config」 は基本的な負荷分散設定を作成するためにStyleBookで作成したStyleBookの名前です。このコンポーネントで定義されているプロパティは、basic-lb-config StyleBookで宣言されている必須パラメーターに対応しています。ただし、StyleBookの任意のパラメーター(必須とオプションの両方)を使用できます。lbvserver、サービスグループ、サービスとサービスグループのバインディングを再構築する代わりに、これらすべてを行うStyleBookをコンポーネントとしてインポートし、それを使用して新しいStyleBookにこれらの構成オブジェクトを作成します。
StyleBookは、Nitroリソース「lbmonitor」(組み込みStyleBook)の属性を使用してmonitor構成オブジェクトを作成する、2番目のコンポーネント「monit-comp」を追加します。このコンポーネントは、最初のコンポーネントで作成されたservicegroupにmonitorをバインドするバインド構成オブジェクトを作成する、サブコンポーネント「monit-svcgrp-bind-comp」も持っています。 「basic-lb-config」StyleBookで作成されたサービスグループコンポーネントは出力として公開されるため、このStyleBookには $components.basic-lb-comp.outputs.servicegroup-comp という表現を使用してアクセスできます。この例では、インポート先のStyleBookが、Outputsセクションを使用してインポート元のStyleBookのコンポーネントにアクセスする方法を示しています。この方法以外でアクセスすることはできません。
次に、StyleBookのコンテンツをコピーしてテキストエディターに貼り付け、そのファイルを composite-example.yamlとして保存します。NetScaler ADM にファイルをインポートする前に、必ずYAMLコンテンツを検証してください。次に、NetScaler ADM にインポートし、このStyleBookを使用して1つまたは複数の構成を作成します。
StyleBooksに組み込みのYAMLバリデータを使用して、YAMLコンテンツを検証およびインポートすることをお勧めします。