StyleBookのComponentsコンストラクトは、StyleBook内で最も重要なセクションと見なされます。このセクションでは、作成する必要がある構成オブジェクトを定義します。このコンストラクトを使用すると、同じタイプの構成オブジェクトを1つまたは複数構築できます。
componentsコンストラクトは、parametersセクションで提供される入力を使用して、StyleBookによって生成される構成を適応させることができます。ほとんどのStyleBookにはcomponentsセクションがありますが、これはオプションのセクションです。
次の表は、コンポーネントの主な属性について説明しています。
| 属性 |
説明 |
name |
コンポーネントの名前。英数字の名前を指定できます。名前はアルファベットで始まり、追加のアルファベット、数字、ハイフン(-)、またはアンダースコア(_)を含めることができます。 |
description |
StyleBookにおけるこのコンポーネントの役割の説明。 |
type |
タイプは、このコンポーネントが提供するプロパティを決定します。コンポーネントには2種類のタイプがあります。組み込みタイプ: このタイプはシステムによって提供され、定義する必要はありません。たとえば、NITROエンティティタイプlbvserverまたはservicegroupなどです。コンポーネントに組み込みタイプの属性がある場合、NetScaler上にそのタイプの構成オブジェクトを作成します。たとえば、コンポーネントが組み込みタイプlbvserverを参照する場合、このコンポーネントは、構成のターゲットであるNetScalerインスタンス上にロードバランシング仮想サーバーを作成します。複合タイプ: このタイプは、NetScaler Consoleで作成してインポートした既存のStyleBookを参照します。コンポーネントに複合タイプの属性がある場合、参照されるStyleBookで指定されたすべての構成オブジェクトを、構成のターゲットであるNetScalerインスタンス上に作成します。これにより、複数のStyleBookを組み合わせることができ、各StyleBookが最終構成の一部を作成します。複合StyleBookの詳細については、「複合StyleBookの作成」を参照してください。 |
meta-properties |
メタプロパティは、NetScalerオブジェクトに対して実行されるアクションを定義します。有効なメタプロパティアクションとして、静的または動的な値を取ることができます。メタプロパティの式を指定すると、NetScalerオブジェクトに対して有効なメタプロパティアクションが動的に適用されます。この属性は、NetScalerオブジェクトに対して非CRUD操作を実行したい場合にStyleBookで使用できます。詳細については、「非CRUD操作を実行するStyleBookの作成」を参照してください。 |
properties |
コンポーネントタイプ属性に使用できるサブ属性。コンポーネントに有効なプロパティは、そのタイプによって決定されます。組み込みタイプの場合、これらは対応するNITROオブジェクトのプロパティまたは属性です。タイプが別のStyleBookであるコンポーネント、つまり複合タイプの場合、プロパティはそのStyleBookで定義されたパラメーターに対応します。 |
例:
components:
-
name: my-lbvserver-comp
type: ns::lbvserver
properties:
name: $parameters.name
servicetype: HTTP
ipv46: $parameters.ip
port: 80
lbmethod: $parameters.lb-alg
この例では、my-lbvserver-comp というコンポーネントを定義しました。このコンポーネントは ns::lbvserver (組み込みタイプ) 型で、「ns」は import-stylebooks セクションで指定した名前空間 netscaler.nitro.config およびバージョン 10.5 を参照するプレフィックスであり、lbvserver はこの名前空間内の NITRO リソースです。
このセクションのプロパティには、lbvserver リソースの必須属性4つとオプション属性1つ (lbmethod) が含まれており、これらの属性の値を指定できます。この例では、servicetype とポートに静的な値を指定していますが、name、ipv46、および lbmethod プロパティは入力パラメーターから値を取得します。パラメーターセクションで定義されたパラメーター名は、$parameters.\<name> 表記を使用して参照します (例: $parameters.ip)。
NITROリソースタイプ (そのコンポーネントプロパティ) の属性名には小文字を使用する必要があります。そうしないと、StyleBookのインポートは失敗します。