Red Hat Training

A Red Hat training course is available for Red Hat Satellite

9.2. パラメーター

Red Hat Satellite のパラメーターは、ホストのプロビジョニング時に使用するキーと値のペアを定義します。これらのパラメーターは、Puppet の概念であるデフォルトスコープパラメーターに似ています。パラメーターは、Puppet でホストをセットアップする際に定義することができます。

パラメーターのタイプ

Red Hat Satellite には 2 種類のパラメーターがあります。
単純パラメーター
キーと値のペアの関係を定義する文字列パラメーターです。それらはユーザー設定で上書きされることはありませんが、Satellite のパラメーター階層に基づいて上書きされます。Global (グローバル)、organization-level (組織レベル)、location-level (ロケーションレベル)、domain-level (ドメインレベル)、operating system level (オペレーティングシステムレベル)、host group (ホストグループ)、および host (ホスト) パラメーターは単純パラメーターに含まれます。
スマートパラメーター
キーの値を定義するだけでなく、特定のオブジェクトタイプの条件付き引数、検証および上書きを可能にする複雑なパラメーターです。スマートパラメーターにより Puppet クラスは外部データを取得することができます。スマートパラメーターは、Peppet 用語で パラメーター化クラス と呼ばれる Puppet クラスで使用されます。それらのパラメーターの階層は Web UI で設定できます。
以下のパラメーター階層は単純なパラメーターに対して適用されます。
グローバルパラメーター
Satellite のすべてのホストに適用されるデフォルトパラメーターです。設定グローバルパラメーター で設定されます。
組織レベルのパラメーター
特定の組織のすべてのホストに影響を与えるパラメーターです。組織レベルのパラメーターはグローバルパラメーターを上書きします。管理組織編集パラメーター で設定されます。
ロケーションレベルのパラメーター
特定ロケーションのすべてのホストに影響を与えるパラメーターです。ロケーションレベルのパラメーターは組織レベルのパラメーターおよびグローバルパラメーターを上書きします。管理ロケーション編集パラメーター で設定されます。
ドメインパラメーター
特定ドメインのすべてのホストに影響を与えるパラメーターです。ドメインパラメーターはロケーションレベル以上のパラメーターを上書きします。インフラストラクチャードメイン[choose_a_domain]パラメーター で設定されます。
オペレーティングシステムレベルのパラメーター
特定のオペレーティングシステムを持つすべてのホストに影響を与えるパラメーターです。オペレーティングシステムレベルのパラメーターは、ドメイン以上のパラメーターに影響を与えます。ホストオペレーティングシステム[choose_an_operating_system]パラメーター で設定されます。
ホストグループパラメーター
特定のホストグループのすべてのホストに影響を与えるパラメーターです。ホストグループパラメーターはオペレーティングシステムレベル以上のパラメーターを上書きします。設定ホストグループ[choose_a_host_group]パラメーター で設定されます。
ホストパラメーター
特定のホストに影響を与えるパラメーターです。従前より継承されるすべてのパラメーターは「パラメーター」サブタブに表示され、上書きすることができます。ホストすべてのホスト編集パラメーター で設定されます。

パラメーターと Puppet クラスの使用

Red Hat Satellite では、2 つの方法によって Puppet クラスで使用するためにホストの 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 (ENC のパラメーター化クラス)True に設定されているかどうかを確認できます。

9.2.1. グローバルな単純パラメーターの作成

この手順は、新規グローバルパラメーターを Satellite に追加する方法を示します。

手順9.2 グローバルな単純パラメーターを作成するには、以下を実行します。

  1. 設定グローバルパラメーター をクリックします。
  2. 新規パラメーター をクリックします。
  3. パラメーターのキーの 名前 を入力します。
  4. パラメーターの を入力します。
  5. オプションで、値をWeb UI で非表示にするかどうかを選択します。
  6. 送信 をクリックします。

9.2.2. スマート変数の設定

以下の手順では、Puppet クラスで値を上書きできるようにスマート編集を設定します。

手順9.3 スマート変数を設定するには、以下を実行します。

  1. 設定Puppet クラス をクリックします。
  2. 一覧からクラスを選択します。
  3. スマート変数 タブをクリックします。これにより、新規の画面が表示されます。左側のセクションには、クラスがサポートする使用可能なパラメーターの一覧が含まれます。右側のセクションには、選択したパラメーターの設定オプションが含まれます。変数の追加 をクリックして新規パラメーターを追加します。または、左側の一覧からパラメーターを選択します。
  4. キー フィールドに名前を入力します。
  5. 詳細 テキストボックスを編集して、プレーンテキストのメモを追加します。
  6. 渡すデータの キータイプ を選択します。最も一般的なタイプは文字列ですが、他のデータタイプもサポートされています。
  7. ホストが一致しない場合に Puppet Master に送信されるパラメーターの Default Value を入力します。
  8. フィールドに作業中に表示したくないデータがが含まれる場合、オプションで 非表示の値 を選択します。
  9. Optional Input Validator セクションを使用してパラメーターに許可される値を制限します。バリデータータイプ (コンマ区切り値の list か、または正規表現の regexp のいずれか) を選択し、許可される値または正規表現コードを バリデータールール フィールドに入力します。
  10. Prioritize attribute order セクションは、条件付き引数に基づいて特定ホストの値を上書きするオプションを提供します。属性タイプおよびその値は matcher として知られています。
    1. エントリーを一覧に配置して、ホスト属性またはファクトが Matcher に対して評価される優先順位の 順序 を設定します。デフォルト一覧に追加することができます。Matcher 間で論理 AND 条件を作成するには、それらをコンマ区切りの一覧として一行に配置します。
    2. Matcher の追加 をクリックして条件付き引数を追加します。一致する属性は 順序 一覧のエントリーに対応するはずです。Matcher が設定されていない場合、デフォルト値のみが上書き機能として使用されます。
      たとえば、Puppet マスターに指定する必要のあるパラメーターの値が server1.example.com の完全修飾ドメイン名を持つホストの test の場合、Matcher を fqdn=server1.example.com として、test に設定します。
      一致の手順は以下のとおりです。
      1. マッチャーがホスト属性の場合はそれを使用します。
      2. 該当する名前を持つ属性がない場合は、一致するホストパラメーター (パラメーターの階層に基づいて継承される) を探します。
      3. それでも一致しなければホストのファクトをチェックします。
      Facter にある属性で、ホストの属性と混同しない属性を使用することが推奨されています。ホスト属性はホストパラメーターか、またはホストグループ、ドメイン、および組織などのホストの関連付けを使用することができます。マッチャーはいずれかのホストで固有である必要があります。たとえば、ホストが複数の config グループに属する可能性があるものの、ホストには 1 つのロケーションのみが設定され、ロケーションのファクトは有効なマッチャーとなるため、 config グループのファクトを使用することはできません。
      動的なデータは、Embedded Ruby (ERB) テンプレート構文の フィールドでパラメーターおよび Puppet ファクトを使用すると利用できます。たとえば、Puppet ファクトを値の一部として使用するには、以下を実行します。
      <%= @host.facts['network_eth0'] %>
      利用可能な Puppet ファクトを一覧表示するには、モニターファクト に移動します。
  11. 送信 をクリックして変更を保存します。
Puppet モジュールの使用についての詳細は、Adding Puppet Modules to Red Hat Satellite 6 を参照してください。ERB 構文についての詳細は、付録A テンプレート作成の参照 を参照してください。

9.2.3. Puppet マスターからのパラメーター化されたクラスのインポート

以下の手順では、Puppet マスターからパラメーター化されたクラスをインポートします。

注記

パラメーター化されたクラスのインポートは、Puppet モジュールが製品およびコンテンツビューで管理される場合に自動的に実行されます。

手順9.4 パラメーター化されたクラスをインポートするには、以下を実行します。

  1. Satellite web UI では、コンテキストメニューから 組織 および ロケーション を選択します。
  2. 設定Puppet クラス をクリックします。
  3. ホスト名からインポート をクリックして、Puppet マスターからパラメーター化されたクラスをインポートします。
  4. Puppet クラス ページが新規クラスの一覧と共に表示されます。

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

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

手順9.5 スマートクラスパラメーターを設定するには、以下を実行します。

  1. 設定Puppet クラス をクリックします。
  2. パラメーター 列に示されるパラメーターを含むクラスを一覧から選択します。
  3. スマートクラスパラメーター タブをクリックします。これにより新しい画面が表示されます。左側のセクションには、クラスがサポートする使用可能なパラメーターの一覧が含まれます。右側のセクションには、選択したパラメーターの設定オプションが含まれます。
  4. 左側の一覧からパラメーターを選択します。
  5. 詳細 テキストボックスを編集して、プレーンテキストのメモを追加します。
  6. 上書き を選択してこの変数に対する Satellite のコントロールを許可します。チェックボックスが選択されていない場合、Satellite は新規の変数を Puppet に渡しません。
  7. 渡すデータの キータイプ を選択します。最も一般的なタイプは文字列ですが、他のデータタイプもサポートされています。
  8. ホストが一致しない場合に Puppet Master に送信されるパラメーターの Default Value を入力します。
  9. 上書きの一致がない場合、値を Puppet Master に送信 しない ようにするには、オプションで Puppet デフォルトの使用 を選択します。
  10. フィールドに作業中に表示したくないデータがが含まれる場合、オプションで 非表示の値 を選択します。
  11. Optional Input Validator セクションを使用してパラメーターに許可される値を制限します。バリデータータイプ (コンマ区切り値の list か、または正規表現の regexp のいずれか) を選択し、許可される値または正規表現コードを バリデータールール フィールドに入力します。
  12. 上書き オプションが選択されていると 属性の優先度付け セクションが表示されます。これは条件付き引数に基づいて特定ホストの値を無効にするオプションを提供します。この属性タイプおよびその値は Matcher として知られています。
    1. エントリーを一覧に配置して、ホスト属性またはファクトが Matcher に対して評価される優先順位の 順序 を設定します。デフォルト一覧に追加することができます。Matcher 間で論理 AND 条件を作成するには、それらをコンマ区切りの一覧として一行に配置します。
    2. Matcher の追加 をクリックして条件付き引数を追加します。一致する属性は 順序 一覧のエントリーに対応するはずです。Matcher が設定されていない場合、デフォルト値のみが上書き機能として使用されます。
      たとえば、Puppet マスターに指定する必要のあるパラメーターの値が server1.example.com の完全修飾ドメイン名を持つホストの test の場合、Matcher を fqdn=server1.example.com として、test に設定します。
      マッチングの優先順位は以下のとおりです。
      1. マッチャーがホスト属性の場合はそれを使用します。
      2. 該当する名前を持つ属性がない場合は、一致するホストパラメーター (パラメーターの階層に基づいて継承される) を探します。
      3. それでも一致しなければホストのファクトをチェックします。
      Facter にある属性で、ホストの属性と混同しない属性を使用することが推奨されています。
      動的なデータは、Embedded Ruby (ERB) テンプレート構文の フィールドでパラメーターおよび Puppet ファクトを使用すると利用できます。たとえば、Puppet ファクトを値の一部として使用するには、以下を実行します。
      <%= @host.facts['network_eth0'] %>
      利用可能な Puppet ファクトを一覧表示するには、モニターファクト に移動します。
  13. 送信 をクリックして変更を保存します。
Puppet モジュールの使用についての詳細は、Adding Puppet Modules to Red Hat Satellite 6 を参照してください。ERB 構文についての詳細は、付録A テンプレート作成の参照 を参照してください。