9.2. パラメーター
Red Hat Satellite パラメーターは、ホストのプロビジョニング時に使用するキーと値のペアを定義します。これらは、Puppet のデフォルトのスコープパラメーターの概念に似ています。Puppet でホストを設定する際にパラメーターを定義することができます。
パラメーターのタイプ
Red Hat Satellite には 2 種類のパラメーターがあります。
- 単純パラメーター
- キーと値のペアとの関係を定義する文字列パラメーターです。ユーザー設定で上書きすることはできませんが、Satellite のパラメーター階層に従って上書きされます。グローバル、組織レベル、ロケーションレベル、ドメインレベル、オペレーティングシステムレベル、ホストグループ、およびホストのパラメーターの単純なパラメーターは、Red Hat Satellite の単純なパラメーターです。
- スマートパラメーター
- キーの値を定義するだけではなく、特定のオブジェクトタイプの条件付き引数、検証および上書きを可能にする複雑なパラメーターです。スマートパラメーターにより、Puppet クラスで外部データを取得できるようになります。これらは、Puppet 用語で パラメーター化されたクラスと呼ばれる Puppet クラス で使用されます。これらのパラメーターの階層は Web UI で設定できます。
以下のパラメーター階層は単純なパラメーターに対して適用されます。
- グローバルパラメーター
- Satellite のすべてのホストに適用されるデフォルトのパラメーター。+ ます。
- 組織レベルのパラメーター
- 特定の組織の全ホストに影響するパラメーター。組織レベルのパラメーターは、グローバルパラメーターを上書きします。
+ で設定されます。 - ロケーションレベルのパラメーター
- 指定の場所内の全ホストに影響するパラメーター。ロケーションレベルのパラメーターは、組織レベルのパラメーターおよびグローバルパラメーターを上書きします。
で設定されます。 - ドメインパラメーター
- 指定のドメインのすべてのホストに影響するパラメーター。ドメインパラメーターは、ロケーションレベル以上のパラメーターを上書きします。
。 - オペレーティングシステムレベルのパラメーター
- 指定したオペレーティングシステムを持つすべてのホストに影響するパラメーター。オペレーティングシステムレベルのパラメーターは、ドメイン以上のパラメーターを上書きします。
。 - ホストグループパラメーター
- 指定のホストグループ内の全ホストに影響するパラメーター。ホストグループのパラメーターは、オペレーティングシステムレベル以上のパラメーターを上書きします。
。 - ホストパラメーター
- 特定のホストに影響するパラメーター。以前に継承したパラメーターはすべてパラメーターサブタブに表示され、上書きすることができます。
で設定されます。
パラメーターと Puppet クラスの使用
Red Hat Satellite では、2 つの方法によって Puppet クラスで使用するためにホストの Puppet マスターに値を指定することができます。
- スマート変数
- スマートパラメーターを持たないクラス用に、グローバルパラメーターを Puppet マスターにキーと値の形式で提供するためのツールです。Puppet マニフェストのパラメーター値の上書きを有効にします。これらは、クラスにスマートパラメーターがない場合や、グローバルパラメーターが必要な場合は特別なケースで使用することを目的としています。これらは、階層コンテキストまたはユーザーが適用できるさまざまな条件に応じて、複数の値の候補を持つことができます。これらは、Puppet がパラメーター化されたクラスを持つ前から存在していたもので、現在は後方互換性を保つため、または検証が必要なグローバルパラメーターの使用のため、特定のパペットクラスでのみ使用するため、および文字列以外のタイプのために (それ以外の場合は単純なパラメーターを使用できます)。
- パラメーター化クラス
- スマートパラメーターを含む Puppet クラス。クラスは Puppet マスターからインポートされ、パラメーター名(たとえば
$::name(推奨)または)は、クラスを作成した人によって定義され、変更できません。グローバルではなく、特定のクラスの変数の値を決定できます。$name
設定されたパラメーターは各ホストの対応する YAML ファイルに含まれ、Puppet マスターに送信されます。YAML ファイルは、特定のホストのページにある Web UI で表示できます。
/etc/foreman/settings.yaml 設定ファイルは、次回 satellite-installer コマンドを実行する際に上書きされるため、手動で変更しないでください。
重要
Satellite 6 では、パラメーター化されたクラスサポートがデフォルトで有効になっています。確実に実行する必要がある場合は、 に移動し、Puppet タブを選択し、
Parametrized_Classes_in_ENC が True に設定されていることを確認します。
9.2.1. グローバルな単純パラメーターの作成 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この手順は、新規グローバルパラメーターを Satellite に追加する方法を示します。
手順9.2 グローバルな単純パラメーターを作成するには、以下を実行します。
をクリックします。 - をクリックします。
- パラメーターのキーの Name を入力します。
- パラメーターの Value を入力します。
- オプションで、値を Web UI で非表示にするかどうかを選択します。
- 送信 をクリックします。
9.2.2. スマート変数の設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、Puppet クラスで値を上書きできるようにスマート編集を設定します。
手順9.3 スマート変数を設定するには、以下を実行します。
をクリックします。 - リストからクラスを選択します。
- スマート変数 タブをクリックします。これにより、新しい画面が表示されます。左側のセクションには、クラスがサポートするパラメーターの候補のリストが記載されています。右側のセクションには、選択したパラメーターの設定オプションが含まれます。変数の て、新しいパラメーターを追加します。追加しない場合は、左側のリストからパラメーターを選択します。
- キー フィールドにパラメーターの名前を入力します。
- 説明 テキストボックスを編集して、プレーンテキストのメモを追加します。
- 渡すデータの Key type を選択します。これは文字列であることが最も一般的ですが、他のデータタイプもサポートされています。
- ホストが一致しない場合に、Puppet Master に送信されるパラメーターの デフォルト値 を入力します。
- 作業中に表示したくないデータがフィールドに含まれている場合は、任意で Hidden 値 を選択します。
- オプションの入力バリデーター セクションを使用して、パラメーターに許可される値を制限します。バリデータータイプ (コンマ区切りの値の リスト または正規表現の regexpのいずれか)を選択し、バリデータールール フィールドに許可される値または正規表現コードを入力します。
- Prioritize 属性の順序 セクションでは、条件付き引数に基づいて特定のホストの値を上書きするオプションを提供します。属性タイプとその値は matcher と呼ばれます。
- リスト内のエントリーを配置することにより、matcher に対してホスト属性またはファクトを評価する優先 順 を設定します。デフォルトのリストに追加できます。matcher 間で AND 論理条件を作成するには、それらをコンマ区切りのリストとして 1 行に配置します。
- をクリックして条件付き引数を追加します。一致する属性は 順位 リストのエントリーに対応している必要があります。matcher が設定されていない場合は、上書き機能にデフォルト値のみを使用できます。たとえば、Puppet マスターに指定するパラメーターの値が server1.example.com の完全修飾ドメイン名を持つホストの
testの場合、Matcher をfqdn=として、Value をserver1.example.comtestとして指定します。マッチングの優先順位は以下のとおりです。Facter にある属性で、ホストの属性と混同しない属性を使用することが推奨されています。ホストの属性は、ホストグループ、ドメイン、組織など、ホストパラメーターまたはホストの関連付けのいずれかになります。matcher は、ホストが 1 つだけ持つ必要があります。たとえば、ホストは多くの設定グループを持つことができますが、ホストにはロケーションが 1 つしかなく、ロケーションは有効な matcher であるため、設定グループは使用できません。- マッチャーがホスト属性の場合はそれを使用します。
- 該当する名前を持つ属性がない場合は、一致するホストパラメーター (パラメーターの階層に基づいて継承される) を探します。
- それでも一致しなければホストのファクトをチェックします。
動的データは、Embedded Ruby (ERB)テンプレート構文の Value フィールドでパラメーターおよび Puppet ファクトを使用することで可能になります。たとえば、Puppet ファクトを値の一部として使用するには、で、<%= @host.facts['network_eth0'] %>
<%= @host.facts['network_eth0'] %>Copy to Clipboard Copied! Toggle word wrap Toggle overflow に移動します。
- をクリックして変更を保存します。
Puppet モジュールの使用に関する詳細は、Red Hat Satellite 6 への Puppet モジュールの追加 を 参照してください。ERB 構文の詳細は、付録A テンプレート作成の参照 を参照してください。
9.2.3. Puppet マスターからのパラメーター化されたクラスのインポート リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、Puppet マスターからパラメーター化されたクラスをインポートします。
注記
パラメーター化されたクラスのインポートは、Puppet モジュールが製品およびコンテンツビューで管理される場合に自動的に実行されます。
手順9.4 パラメーター化されたクラスをインポートするには、以下を実行します。
- Satellite Web UI で、コンテキストメニューの Any Organization および Any Location を選択します。
をクリックします。 - Import from Host Name をクリックして、Puppet マスターからパラメーター化されたクラスをインポートします。
- Puppet Classes ページが新規クラスのリストと共に表示されます。
9.2.4. スマートクラスパラメーターの設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、クラス内でパラメーターを設定します。パラメーターが含まれるクラスは、パラメーター 化されたクラス と呼ばれます。
手順9.5 スマートクラスパラメーターを設定するには、以下を実行します。
をクリックします。 - パラメーター 列に示されるパラメーターを含むクラスを一覧から選択します。
- Smart Class Parameter タブをクリックします。これにより、新しい画面が表示されます。左側のセクションには、クラスがサポートするパラメーターの候補のリストが記載されています。右側のセクションには、選択したパラメーターの設定オプションが含まれます。
- 左側のリストからパラメーターを選択します。
- 説明 テキストボックスを編集して、プレーンテキストのメモを追加します。
- 上書き を選択して、Satellite がこの変数を制御できるようにします。このチェックボックスを選択しないと、Satellite は新しい変数を Puppet に渡しません。
- 渡すデータの Key type を選択します。これは文字列であることが最も一般的ですが、他のデータタイプもサポートされています。
- ホストが一致しない場合に、Puppet Master に送信されるパラメーターの デフォルト値 を入力します。
- 必要に応じて、Use Puppet Default を選択して、上書きが一致しない限り、値を Puppet Master に送信し ませ ん。
- 作業中に表示したくないデータがフィールドに含まれている場合は、任意で Hidden 値 を選択します。
- オプションの入力バリデーター セクションを使用して、パラメーターに許可される値を制限します。バリデータータイプ (コンマ区切りの値の リスト または正規表現の regexpのいずれか)を選択し、バリデータールール フィールドに許可される値または正規表現コードを入力します。
- Prioritize 属性の順序 セクションは、Override オプションが選択されている場合に表示されます。これにより、条件付き引数に基づいて特定のホストの値を上書きするためのオプションが提供されます。属性タイプとその値は matcher と呼ばれます。
- リスト内のエントリーを配置することにより、matcher に対してホスト属性またはファクトを評価する優先 順 を設定します。デフォルトのリストに追加できます。matcher 間で AND 論理条件を作成するには、それらをコンマ区切りのリストとして 1 行に配置します。
- をクリックして条件付き引数を追加します。一致する属性は 順位 リストのエントリーに対応している必要があります。matcher が設定されていない場合は、上書き機能にデフォルト値のみを使用できます。たとえば、Puppet マスターに指定するパラメーターの値が server1.example.com の完全修飾ドメイン名を持つホストの
testの場合、Matcher をfqdn=として、Value をserver1.example.comtestとして指定します。マッチングの優先順位は以下のとおりです。Facter にある属性で、ホストの属性と混同しない属性を使用することが推奨されています。- マッチャーがホスト属性の場合はそれを使用します。
- 該当する名前を持つ属性がない場合は、一致するホストパラメーター (パラメーターの階層に基づいて継承される) を探します。
- それでも一致しなければホストのファクトをチェックします。
動的データは、Embedded Ruby (ERB)テンプレート構文の Value フィールドでパラメーターおよび Puppet ファクトを使用することで可能になります。たとえば、Puppet ファクトを値の一部として使用するには、で、<%= @host.facts['network_eth0'] %>
<%= @host.facts['network_eth0'] %>Copy to Clipboard Copied! Toggle word wrap Toggle overflow に移動します。
- をクリックして変更を保存します。
Puppet モジュールの使用に関する詳細は、Red Hat Satellite 6 への Puppet モジュールの追加 を 参照してください。ERB 構文の詳細は、付録A テンプレート作成の参照 を参照してください。