3.9. スマートクラスパラメーターの設定

以下の手順では、クラス内でパラメーターを設定します。パラメーターが含まれるクラスは、パラメーター化されたクラスと呼ばれます。

スマートクラスパラメーターは、すべての組織で共通しています。edit_external_parameters パーミッションを持つユーザーなら誰でも、これらのパラメーターを編集できます。スマートクラスパラメーターを編集するパーミッションを制限する場合は、KCS のソリューション記事「Restrict permissions to edit puppet classes and their smart class parameters which are common between multiple organizations」を参照してください。

スマートクラスパラメーターの設定

  1. 設定 > Puppet クラス をクリックします。
  2. パラメーター 列に示されるパラメーターを含むクラスを一覧から選択します。
  3. スマートクラスパラメーター タブをクリックします。これにより、新しい画面が表示されます。左側のセクションには、クラスがサポートするパラメーターの候補の一覧が記載されています。右側のセクションには、選択したパラメーターの設定オプションが含まれます。
  4. 左側の一覧からパラメーターを選択します。
  5. 説明 テキストボックスを編集して、プレーンテキストのメモを追加します。
  6. 上書き を選択して、Satellite がこの変数を制御できるようにします。このチェックボックスを選択しないと、Satellite は新しい変数を Puppet に渡しません。
  7. 渡すデータの パラメータータイプ を選択します。これは文字列であることが最も一般的ですが、他のデータタイプもサポートされています。
  8. ホストが一致しない場合に、Puppet マスターに送信されるパラメーターの デフォルト値 を入力します。
  9. オプション:省略 を選択して、上書きが一致しない限り、値を Puppet マスターに送信しません
  10. オプション: 作業中に表示したくないデータがフィールドに含まれる場合は、非表示の値 を選択します。
  11. オプションの入力バリデーター セクションを使用して、パラメーターに許可される値を制限します。バリデータータイプ (コンマ区切りの値の リスト または正規表現の regexp のいずれか) を選択し、バリデータールール フィールドに許可される値または正規表現コードを入力します。
  12. 属性の優先順位付け セクションは、上書き オプションが選択されている場合に表示されます。これにより、条件付き引数に基づいて特定のホストの値を上書きするためのオプションが提供されます。属性タイプとその値は matcher として知られています。
  13. 順位 フィールドで、リスト内のエントリーを配置することにより、matcher に対してホスト属性またはファクトを評価する優先順位を設定します。Facter にある属性で、デフォルトのリストのホストの属性と混同しない属性を追加することができます。

    matcher 間で AND 論理条件を作成し、複数の属性を matcher キーとして使用する場合は、以下の形式でコンマ区切りのリストとして 1 行に配置します。

    location,environment
    注記

    BZ#1772381 が解決されるまで、順位 のツールチップには、複数の属性を matcher キーとして使うことによる間違った設定例が表示される点に留意してください。

  14. Matcher の追加 をクリックして条件付き引数を追加します。一致する属性は、順位 リストのエントリーに対応しています。matcher が設定されていない場合は、上書き機能にデフォルト値のみを使用できます。
  15. 属性タイプ リストから属性を選択します。
  16. 属性の横にあるフィールドに、属性の文字列を入力します。
  17. フィールドで、必要な値を入力します。

    動的データは、Embedded Ruby (ERB) テンプレート構文の フィールドでパラメーターおよび Puppet ファクトを使用することで可能です。たとえば、Puppet ファクトを値の一部として使用するには、以下のコマンドを実行します。

    <%= @host.facts['network_eth0'] %>

    利用可能な Puppet ファクトを一覧表示するには、監視 > ファクト に移動します。

    ERB 構文の詳細は、『 ホストの管理 』の「 テンプレート作成の参照 」を参照してください。

  18. 送信 をクリックします。

単一の属性を matcher キーとして設定

単一の属性を matcher キーとして設定できます。

たとえば、Default_Location のロケーション内の任意のホストの Puppet マスターにパラメーターの test 値を指定するには、以下の手順を実行します。

  1. 順位 フィールドに location を追加します。
  2. Matcher の追加 をクリックし、属性タイプ リストから location を選択します。
  3. 属性の横にあるフィールドに Default_Location を入力します。
  4. フィールドに test を入力します。
  5. 送信 をクリックします。

複数の属性を matcher キーとして設定

複数の属性を matcher として設定できます。

たとえば、Default_Location のロケーションおよび開発環境内の任意のホストの Puppet マスターにパラメーターの test 値を指定するには、以下の手順を実行します。

  1. 順位 フィールドに location,environment を追加します。
  2. Matcher の追加 をクリックし、属性タイプ リストから location,environment を選択します。
  3. 属性の横にあるフィールドに Default_Location,development を入力します。
  4. フィールドに test を入力します。
  5. 送信 をクリックします。

一致の優先順位の概要

Satellite は、ホストを一致させる場合、以下の優先順位を使用します。

  1. Satellite は、ホスト属性で matcher を検索します。
  2. ホスト属性に一致するものがない場合には、Satellite はホストパラメーターの matcher を検索します。これは、パラメーター階層に従って継承されます。
  3. ホストパラメーターに一致するものがない場合には、Satellite はホストのファクトの matcher を検索します。