属性 - AWS OpsWorks

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

属性

レシピとテンプレートは、設定を指定するさまざまな値に依存しています。それらの値をレシピやテンプレートに直接ハードコードするのではなく、各値を表す属性が記載された属性ファイルを作成します。レシピとテンプレートには、明示的な値ではなく、この属性を指定します。属性を使用する利点は、クックブックに変更を加えることなしに、値を上書きできることです。このような理由から、次に示すタイプの値の定義には、常に属性を使用するようにしてください。

  • ユーザー名などの、スタックごとに異なる、または時間とともに変化する値。

    このような値をハードコードした場合は、値を変更するたびにレシピやテンプレートを変更する必要が生じます。これらの値の定義に属性を使用することで、すべてのスタックに対して同じクックブックを使用し、該当する属性のみを上書きすることができます。

  • パスワードやシークレットキーなどの機密情報を含む値。

    クックブックに機密情報を明示的に入力すると、漏洩の危険が増します。代わりに、ダミーの値を指定した属性を定義し、実際の値は上書きで設定するようにします。値を上書きする最良の方法は、カスタム JSON を使用することです。詳細については、「カスタム JSON の使用」を参照してください。

属性および属性を上書きする方法の詳細については、「属性の上書き」を参照してください。

次の例は、属性ファイルの例の一部です.

... default["apache"]["listen_ports"] = [ '80','443' ] default["apache"]["contact"] = 'ops@example.com' default["apache"]["timeout"] = 120 default["apache"]["keepalive"] = 'Off' default["apache"]["keepaliverequests"] = 100 default["apache"]["keepalivetimeout"] = 3 default["apache"]["prefork"]["startservers"] = 16 default["apache"]["prefork"]["minspareservers"] = 16 default["apache"]["prefork"]["maxspareservers"] = 32 default["apache"]["prefork"]["serverlimit"] = 400 default["apache"]["prefork"]["maxclients"] = 400 default["apache"]["prefork"]["maxrequestsperchild"] = 10000 ...

AWS OpsWorks スタックで属性を定義するには、次の構文を使用します。

node.type["attribute"]["subattribute"]["..."]=value

次のように、コロン (:) を使用することもできます。

node.type[:attribute][:subattribute][:...]=value

属性の定義には、次のようなコンポーネントが含まれます。

node.

node. プレフィックスはオプションです。例に示すように、通常は省略されます。

type

type を使用して属性が上書き可能かどうかを制御します。AWS OpsWorksスタックの属性には、通常、次のタイプのいずれかが使用されます。

  • default は、属性の上書きが許可されるため、最も一般的に使用されるタイプです。

  • normal は、AWS OpsWorks スタックのスタンダードの属性値のいずれか 1 つを上書きする属性を定義します。

注記

Chef は、AWS OpsWorks スタックでは必須とされていないが、プロジェクトに役立つ追加のタイプもサポートします。詳細については、「属性について」を参照してください。

attribute name

属性名には、Chef の標準ノード構文である [:attribute][:subattribute][...] を使用します。属性には、希望する任意の名前を使用することができます。ただし、「属性の上書き」で説明されているように、カスタムクックブック属性は、スタック設定とデプロイ属性、および Chef の Ohai ツールとともに、インスタンスのノードオブジェクト内にマージされます。portuser などは、一般的に使用される設定名であるため、さまざまなクックブックに出現する可能性があります。

名前の競合を避けるためには、命名規則に従います。例に示すように、少なくとも 2 つの要素を使用して修飾した属性名を作成します。1 つ目は、Apache のように、通常は製品名に基づいた一意の要素を使用します。次に、[:user][:port] などの、特定の値を識別できる 1 つ以上のサブ属性が続きます。プロジェクトの要件に合った数のサブ属性を使用することができます。

value

属性は、次のようなタイプの値に設定することができます。

  • default[:apache][:keepalive] = 'Off' のような文字列。

  • default[:apache][:timeout] = 120 のような数値 (引用符なし)。

  • true または false のブール値 (引用符なし)。

  • default[:apache][:listen_ports] = [ '80','443' ] のような値のリスト。

属性ファイルは Ruby アプリケーションです。そのため、ノード構文と論理演算子を使用して、他の属性に基づいた値を割り当てることもできます。属性の定義方法の詳細については、「属性について」を参照してください。属性ファイルの作業例については,[https://github.com/aws/opsworks-cookbooks] にある AWS OpsWorks スタックの組み込みクックブックを参照してください。