ホスト設定ガイド


Red Hat Satellite 6.2

Red Hat Satellite 6 環境におけるホストの管理ガイド

1.0 エディッション

Red Hat Satellite Documentation Team

概要

Red Hat Satellite 6 ホスト設定ガイドでは、Red Hat Satellite 環境でホストを設定および使用する方法について説明します。この作業を行う前に、Red Hat Satellite 6 Server と、必要な Capsule Server がすべて正常にインストールされている必要があります。

第1章 Red Hat Satellite コンテンツダッシュボードの使用

Red Hat Satellite コンテンツダッシュボードには、現在登録されているサブスクリプションとホストのステータスの概要、プロモーションと同期の概要、最新の通知リストが表示されます。
コンテンツダッシュボードにアクセスするには、監視Dashboard に移動します。ダッシュボードは、セクションのタイトルをクリックし、セクションを別の位置にドラッグすることで、配置を変更することができます。以下のセクションを利用できます。
コンテンツホストのサブスクリプションの状態
Satellite に登録されているホストによって現在使用されているサブスクリプションの概要です。サブスクリプションとはご購入いただいた証明書を指します。このサブスクリプションでホストのソフトウェア、アップグレード、およびセキュリティー修正などが利用できるようになります。以下の表はサブスクリプションの状態の種類を示しています。
Expand
表1.1 ホストのサブスクリプションの状態
State
説明
アイコン
Invalid
製品がインストールされていて、サブスクリプションが適切に使用されていないホストです。これらのホストには早急な対応が必要です。
red
部分使用
サブスクリプションが使用されていて、有効なエンタイトルメントを持つホストですが、それらのエンタイトルメントは完全には使用されていません。これらのホストが予定通りに設定されていることを確認するために、これらのホストを監視する必要があります。
orange
有効
有効なエンタイトルメントを有し、それらのエンタイトルメントを完全に使用しているホストです。
green
サブスクリプションタイプを選択し、選択したタイプのサブスクリプションに関連付けられたコンテンツホストを表示します。
最新イベント
管理情報、製品、サブスクリプションの変更およびエラーに関するホストが生成するメッセージのリストです。
すべてのユーザーに送信されるグローバル通知や、異常なアクティビティーまたはエラーを検出するためにこのセクションを監視します。
同期の概要
Satellite で有効にされているすべての製品またはリポジトリーおよびそれらの同期の状態の概要です。同期待ちになっている製品、同期されていない製品、同期が行われた製品はすべてこのセクションにリスト表示されます。同期ステータスを表示するには、製品名をクリックします。
ホストコレクション
Satellite 内のすべてのホストコレクションとそれらの状態のリストで、各ホストコレクション内のコンテンツホストの数なども含まれます。ホストコレクション名をクリックして、そのホストコレクションを表示します。
現在のサブスクリプション合計
アクティブなサブスクリプションの数、次の 120 日で期限の切れるサブスクリプションの数、および最近期限切れになったサブスクリプションの数を表示する現在のサブスクリプション合計の概要です。選択したタイプのサブスクリプションを一覧表示する番号をクリックします。
コンテンツビューの概要
Satellite におけるすべてのコンテンツビューおよびそれらの公開状態のリストです。
エラータの概要
Satellite に登録されているホストで利用できるすべてのエラータのリストです。
タスクのステータス
ステータスと結果別に分類される現在のすべてのタスクのサマリーです。タスク番号をクリックして、対応するタスクの一覧に移動します。
最新の警告/エラータスク
警告またはエラーにより停止している最新タスクのリストです。タスクをクリックして詳細を確認してください。
注記
Satellite Web UI で表示される日付の形式を変更することはできません。

1.1. タスクの管理

Red Hat Satellite は、同期されたリポジトリー、適用されたエラータ、公開されたコンテンツビューなどの計画されたタスクまたは実行されたタスクのすべての詳細なログを保持します。ログを確認するには、監視タスク に移動します。このページでは、特定のタスクの検索、ステータスと詳細の表示、エラーの原因となったタスクを再開できます(該当する場合)。
タスクは Dynflow エンジンを使用して管理されます。リモートタスクには、必要に応じて調整できるタイムアウトが設定されます。

手順1.1 タイムアウト設定を調整するには、以下を実行します。

  1. 管理設定 に移動します
  2. 検索ボックスに %_timeout を入力し、Search をクリックします。検索では、説明を含む 4 つの設定が返されます。
  3. 値 のコラム 、数字の横にあるアイコンをクリックして編集します。
  4. 希望する秒数を入力したら、保存 をクリックします。
注記
低帯域幅の場合は %_finish_timeout 値の編集が役立つ場合があります。待ち時間が長い場合は %_accept_timeout 値の編集が役立つことがあります。
タスクが初期化されると、Candlepin または Pulp などのタスクで使用されるすべてのバックエンドサービスについて正常に機能するかどうかがチェックされます。チェックに失敗すると、以下のようなエラーが発生します。
There was an issue with the backend service candlepin: Connection refused – connect(2).
Copy to Clipboard Toggle word wrap
バックエンドサービスチェック機能が原因で問題が発生する場合は、以下のように無効にできます。

手順1.2 サービスのチェックを無効にするには、以下を実行します。

  1. 管理設定 に移動します
  2. 検索ボックスに check_services_before_actions を入力し、Search をクリックします。
  3. 値 コラム アイコンをクリックして値を編集します。
  4. ドロップダウンメニューから false を選択します。
  5. Save をクリックします。

第2章 検索およびブックマーク機能

Satellite Web UI は、Web UI の大半のページで利用できる強力な検索機能を特長としています。この機能によって Satellite Server が管理するあらゆる種類のリソースを検索できます。検索では、フリーテキストと構文ベースのクエリーの両方を使用でき、クエリーは詳細な予測入力を使用して実行されます。検索クエリーは今後の再利用に備えてブックマークとして保存することができます。

2.1. 検索クエリーの構築

検索クエリーの入力を開始すると、現在のクエリーを補完する有効なオプションのリストが表示されます。一覧からオプションを選択するか、補完機能を使用してクエリーを構築するか、入力を継続するかのいずれかのオプションを選択できます。検索エンジンがフリーテキストを解釈する方法については、「フリーテキスト検索の使用」 を参照してください。

2.1.1. クエリーの構文

parameter operator value
Copy to Clipboard Toggle word wrap
検索に利用できるフィールド、リソースおよびクエリーが解釈される方法はコンテキスト、つまり検索を実行するページによって異なります。たとえば、ホストページの "hostgroup" フィールドはホストグループページの "name" フィールドに相当します。またフィールドのタイプにより、利用可能な演算子および許可される値が決まります。すべての演算子のリストについては、「Operator」 を参照してください。値の形式の説明は、「値」 を参照してください。

2.1.2. Operator

パラメーター の間で使用できるすべての演算子は以下の表に一覧表示されています。予測に基づいて構築されるクエリーで表示される可能性のある他の記号および特殊文字 (コロンなど) には特別な意味がなく、フリーテキストとして処理されます。
Expand
表2.1 検索で使用できる比較演算子
演算子ショートネーム説明
= EQUALS 数値、時間的な値 (temporal value) またはテキストの値を受け入れます。テキストの場合、大文字と小文字が区別された完全一致が返されます。 hostgroup = RHEL7
!= NOT EQUALS
~ LIKE テキストまたは時間的な値 (temporal value) を受け入れます。大文字と小文字を区別しない一致を返します。1 文字の場合の _、ゼロを含む任意の数の文字の場合の % または * などのワイルドカードを受け入れます。ワイルドカードが指定されない場合、文字列はワイルドカードで囲まれている場合の様に処理されます (例: %rhel7%)。 hostgroup ~ rhel%
!~ NOT LIKE
> GREATER THAN 数値、または時間的な値 (temporal value) を受け入れます。時間的な値の場合、演算子 > is は "later than" (次の日付より後) として、< は "earlier than" (次の日付より前) として解釈されます。どちらの演算子も EQUALS: >= <= と組み合わせることができます。 registered_at > 10-January-2017
検索は、指定された日付の後、つまり 2017 年 1 月 10 日から現在までの間に登録されたホストを返します。
registered_at <= Yesterday
検索は、昨日または昨日よりも前に登録されたホストを返します。
< LESS THAN
^ IN SQL の場合と同様に、値のリストに対して式を比較します。値が含まれる一致または値の含まれない一致をそれぞれ返します。 release_version !^ 7
!^ NOT IN
HAS   存在する値、または存在しない値をそれぞれ返します。 has hostgroup
Puppet クラスページでは、検索は 1 つ以上のホストグループに割り当てられるクラスを返します。
Not has hostgroup
ホストの概要が示されるダッシュボードでは、検索はホストグループが割り当てられていないすべてのホストを返します。
NOT HAS  
記述された構文に従う単純なクエリーを組み合わせて、論理演算子の AND、OR および NOT を使用してより複雑なクエリーにすることができます。演算子の代替表記も使用できます。
Expand
表2.2 検索で使用できる論理演算子
演算子代替表記
and & && <空白文字> class = motd AND environment ~ production
or | ||   errata_status = errata_needed || errata_status = security_needed
not !   hostgroup ~ rhel7 not status.failed

2.1.3. 値

テキストの値
空白文字を含むテキストは引用符で囲む必要があります。囲まないと、空白文字は AND 演算子として解釈されます。
例:
hostgroup = "Web servers"
検索は、"Web servers" という名前の割り当て済みのホストグループとともにホストを返します。
hostgroup = Web servers
検索は、%servers% に一致するフィールドを持つホストグループ Web のホストを返します。
時間の値
以下を含め、数多くの日付/時刻形式を使用できます。
  • "10 January 2017"
  • "10 Jan 2017"
  • 10-January-2017
  • 10/January/2017
  • "January 10, 2017"
  • Today、Yesterday など。
警告
02/10/2017 または 10-02-2017 などのあいまいな日付形式を使用しないようにしてください。

2.3. ブックマーク機能

検索クエリーを保存するには、検索 ボタンの横にあるメニューでこの検索項目をブックマーク します。保存されたブックマークは、選択した名前で同じメニューに表示されます。作成時に、ブックマークはパブリックとしてマークできます。これにより、ブックマークはすべてのユーザーに表示されるか、プライベートとして表示され、作成したユーザーにしか表示されなくなります。
各ページには独自のブックマークがあります。一部のページには、すべてのアクティブなホスト、無効化されたホスト、または最近エラーを報告しているホストなど、最も一般的な検索で使用可能なデフォルトのブックマークがあります。既存のすべてのブックマークを表示および管理するには、AdministerBookmarks に移動します。

第3章 コンテンツビューの使用

コンテンツビューは、オプションのフィルター機能と共に 1 つ以上のリポジトリー(yum、puppet、またはコンテナー)を含むマネージドのコンテンツセレクションです。これらのフィルターは、包含または排他的で、ライフサイクルの管理用にコンテンツのシステムビューを調整することができます。また、フィルターを使用してクライアントシステムで利用できるようにコンテンツをカスタマイズできます。
yum、Puppet、およびコンテナーのリポジトリーを別々のコンテンツビューに保持すると、1 つのリポジトリーに対する更新で、関連するコンテンツビューの再公開のみが必要になるという利点があります。複合コンテンツビューを使用して、公開済みのコンテンツビューを組み合わせることで、管理が容易になります。

図3.1 この図は、コンテンツビューの新規バージョンの作成の詳細を示しています。これらのコンテンツビューのバージョンは、アプリケーションライフサイクル中に環境パス上でプロモートされます。

公開されたコンテンツビューがライフサイクル環境と共に使用されます。

3.1. コンテンツビューの作成

管理者権限を持つユーザーはライフサイクル環境で使用できるコンテンツビューを作成することができます。

手順3.1 コンテンツビューを作成するには、以下を実行します。

  1. Satellite 管理者としてログインします。
  2. ContentContent Views をクリックします。
  3. Create New View をクリックします。
  4. コンテンツビューの Name を指定します。Name フィールドに入力されると、Label フィールドに自動的に入力されます。オプションで、コンテンツビューの説明を入力します。
  5. 複合コンテンツビュー のチェックボックスを選択して、一連の公開されたコンテンツビューを 1 つにまとめ、コンテンツビューを選択します。
    注記
    複合コンテンツ ビューを選択すると、フィルタリングが上書きされ、公開されたコンテンツビューのグループを選択し、それらのビューを複合にバンドルできます。
  6. Save をクリックします。

3.2. リポジトリーのコンテンツビューへの追加

リポジトリーは、コンテンツ用のストレージを提供します。たとえば、YUM リポジトリー、Puppet リポジトリー、または Docker リポジトリーなどです。
コンテンツビュー ページには、検索可能なコンテンツビューのリストが含まれています。検索 フィールドを使用してコンテンツビューを 検索 する場合は、アスタリスク(*)を使用して部分的な文字列検索を実行します。
たとえば、RHEL7_Base という名前のコンテンツビューを検索する場合は、RHEL7 と入力しても結果が返されず、RHEL7* を入力します。または、*Base* は、コンテンツビュー RHEL7_Base も取得します。

手順3.2 リポジトリーをコンテンツビューに関連付けるには、以下を実行します。

  1. コンテンツビュー クリックし て、リポジトリーを追加するコンテンツビューを選択します。
  2. 保存する必要のあるコンテンツのタイプに応じて以下を実行します。
    • Yum リポジトリーを追加するには、Yum コンテンツ をクリックして、ドロップダウンメニューから Repositories を選択します。サブメニューから Add をクリックします。たとえば、ホストに Katello エージェントをインストールするには、Satellite Tools リポジトリーを有効にする必要があります。
    • Puppet リポジトリーを追加するには、Puppet モジュール をクリックして、Add New Module をクリックします。
    • Docker リポジトリーを追加するには、Docker コンテンツ をクリックし、サブメニューで Add をクリックします。
  3. 追加するリポジトリーを選択し、Add Repositories をクリックします。

3.3. コンテンツのフィルタリング

フィルター を使用すると、パッケージが後続の環境にプロモートされるのを防ぐメカニズムが提供されます。フィルターでパッケージ名または正規表現を使用して、パッケージをブラックリストに登録するルールを作成できます。その後、フィルターを製品全体または製品内の個々のリポジトリーに関連付けることができます。

3.3.1. フィルターの作成

以下の手順では、パッケージのフィルターを作成する方法を説明します。

手順3.3 フィルターを作成するには、以下を実行します。

  1. コンテンツビュー に 移動して、絞り込むコンテンツビューを選択します。
  2. Yum コンテンツフィルター をクリックし新規フィルター をクリックします。
  3. Name フィールドに新規フィルターの名前を指定し、Content Type ドロップダウンメニューからコンテンツタイプを選択します。Type ドロップダウンメニューを選択して、選択したコンテンツタイプをフィルターに含めるか除外するかを選択します。必要に応じて、Description フィールドに説明を挿入します。
  4. Save をクリックして、新しいフィルターを保存します。

3.3.2. コンテンツのフィルターへの追加

以下の手順では、コンテンツをパッケージフィルターに追加する方法を示します。

手順3.4 コンテンツをフィルターに追加するには、以下を実行します。

  1. コンテンツビュー に 移動して、絞り込むコンテンツビューを選択します。
  2. Yum コンテンツフィルター をクリックして、編集するフィルターの名前をクリックします。選択したフィルターのタイプに応じて、以下の操作を実行します。
    1. パッケージ用にフィルターを作成する場合は、Packages サブタブでパッケージ名を指定し、ドロップダウンメニューから Detail 値を選択します。Add をクリックしてパッケージをフィルターに追加します。
    2. パッケージグループ用にフィルターを作成した場合は、Add サブタブをクリックして、目的のパッケージグループを選択します。パッケージグループの追加 をクリックします。
    3. エラータ用にフィルターが作成されている場合は、Add サブタブをクリックします。エラータタイプ(セキュリティー、機能 拡張、または バグ修正)を選択し、開始日と終了日を指定します。Add Errata をクリックします。
    4. フィルターがエラータ - 日付およびタイプ用に作成されている場合、エラータ タイプ(セキュリティー機能拡張、または バグ修正)を選択し、開始日と終了日を指定します。Save をクリックします。
  3. Affected Repositories サブタブで、フィルターがリポジトリーすべてまたはサブセットに影響を与えるかどうかを選択します。リポジトリーのサブセットを選択した場合は、目的のリポジトリーを選択し、Update Repositories をクリックします。
  4. 新規バージョンの公開 をクリックします。必要に応じてコメントを挿入してから、Save をクリックします。

3.3.3. フィルターからのコンテンツの削除

以下の手順では、パッケージフィルターからコンテンツを削除する方法について示します。

手順3.5 コンテンツをフィルターから削除するには、以下を実行します。

  1. コンテンツビュー に 移動して、絞り込むコンテンツビューを選択します。
  2. Yum コンテンツフィルター をクリックして、編集するフィルターの名前をクリックします。選択したフィルターのタイプに応じて、以下の操作を実行します。
    1. フィルターがパッケージ用に作成されている場合は、Packages サブタブをクリックし、削除するパッケージの横にある Package Name チェックボックスを選択します。パッケージの 削除 を クリックして、パッケージをフィルターから削除します。
    2. フィルターがパッケージグループ用に作成されている場合は、リスト/削除 サブタブをクリックし、削除するパッケージグループの横にある Name チェックボックスを選択します。フィルターから パッケージグループを削除するには、パッケージグループの削除 をクリックします。
    3. エラータ用にフィルターが作成されている場合は、削除するエラータの横にある エラータ ID チェックボックスを選択して、リスト/削除 サブタブを クリックします。エラー タの削除 をクリックして、エラータをフィルターから削除します。
    4. フィルターが エラータ - 日付およびタイプ用に作成されている場合、エラータの タイプ(セキュリティー機能拡張、または バグ修正)を確認します。開始日と終了日を指定します。Save をクリックします。
  3. Affected Repositories サブタブで、フィルターがリポジトリーすべてまたはサブセットに影響を与えるかどうかを選択します。リポジトリーのサブセットを選択した場合は、目的のリポジトリーを選択し、Update Repositories をクリックします。
  4. 新規バージョンの公開 をクリックします。必要に応じてコメントを挿入し、Save をクリックします。

3.3.4. フィルターの削除

以下の手順では、フィルターを削除する方法について示します。

手順3.6 フィルターを削除するには、以下を実行します。

  1. コンテンツビュー に 移動して、絞り込むコンテンツビューを選択します。
  2. Yum コンテンツフィルター をクリックして、削除するパッケージフィルター名の横にあるチェックボックスを選択します。
  3. フィルターの削除 をクリックします。

3.4. コンテンツビューの公開

コンテンツビューを作成したら、ホストが表示して使用できるように公開する必要があります。コンテンツビューの定義を公開する前に、コンテンツビュー定義に必要な製品、リポジトリー、およびフィルターが含まれていることを確認してください。

手順3.7 コンテンツビュー定義を公開するには、以下を実行します。

  1. ContentContent Views をクリックします。
  2. 公開するコンテンツビューをクリックします。
  3. 新規バージョンの公開 をクリックします
  4. コメントを入力します。
  5. Save をクリックします。

第4章 エラータの表示および適用

Red Hat 製品のソフトウェアパッケージは、エラータ と呼ばれる更新に依存します。これらのソフトウェアパッケージは、定期的な間隔および非同期でリリースされます。Red Hat Satellite ではエラータを検証してフィルタリングするためのツールが提供されており、更新の管理が正確にできます。このようにして、関連のある更新を選択し、コンテンツビューから選択したコンテンツホストに伝播できます。コンテンツビューの詳細は、3章コンテンツビューの使用 を参照してください。
重要
「Katello エージェントのインストール」 の説明通りに、Satellite Server に katello-agent パッケージをインストールします。このパッケージは、エラータ管理に必要なサービスを提供します。
最新の更新を適用する前に、Satellite コンテンツが正しく同期されていることを確認します。MonitorContent Dashboard に移動し、エラータの同期の概要を確認します。
エラータには、更新で導入された変更を記述するアドバイザリーが含まれます。アドバイザリーには以下の 3 種類があります (重要度の高い順)。
  • セキュリティー アドバイザリー では、パッケージにあるセキュリティー問題の修正を説明します。セキュリティー問題の重大度のレベルは、中、重要 重大 に分かれています。
  • バグ修正アドバイザリー では、パッケージのバグ修正を説明します。
  • 製品の機能拡張アドバイザリー では、パッケージに追加された機能拡張および新機能を説明します。
注記
エラータには、それらに含まれる最も重要なアドバイザリータイプに応じてラベルが付けられます。そのため、製品の機能拡張アドバイザリー というラベルが付けられたエラータには機能拡張の更新のみが含まれ、バグ 修正アドバイザリー エラータにはバグ修正と拡張機能の両方が含まれ、セキュリティーアドバイザリー にはこれら 3 つのタイプが含まれる場合があります。
Red Hat Satellite では、エラータと利用可能なコンテンツホストとの関係を表す 2 つのキーワードがあります。
  • 適用 可能: エラータは 1 つ以上のコンテンツホストに適用されます。つまり、コンテンツホストに存在するパッケージを更新します。コンテンツホストから適用可能なエラータにはまだアクセスできません。
  • Installable: 1 つ以上のコンテンツホストに適用され、コンテンツホストで利用できるようになります。インストール可能なエラータはコンテンツホストのライフサイクル環境およびコンテンツビューに存在しますが、まだインストールされていません。これにより、コンテンツホストを管理するパーミッションがあるユーザーがエラータをインストールできますが、より高いレベルでエラータを管理する権限がありません。

4.1. 利用可能なエラータの検出

以下の手順では、利用可能なエラータを表示し、フィルタリングする方法や、選択したアドバイザリーのメタデータを表示する方法を説明します。

手順4.1 利用可能なエラータを検査するには、以下を実行します。

  1. コンテンツエラータ に移動して、利用可能なエラータの一覧を表示します。
  2. ページ上部のフィルターツールを使用して、表示されるエラータの数を制限します。
    • ドロップダウンリストから、検査するリポジトリーを選択します。デフォルトで は すべてのリポジトリー が選択されます。
    • 適用 可能 チェックボックスがデフォルトで選択され、選択されたリポジトリーに適用可能なエラータのみが表示されます。インストール 可能 チェックボックスを選択すると、インストール可能のマークが付いたエラータのみが表示されます。
    • エラータの表を検索するには、以下の形式で 検索 フィールドにクエリーを入力します。
      parameter operator value
      Copy to Clipboard Toggle word wrap
      検索に使用できるパラメーターの一覧は、表4.1「エラータ検索で利用できるパラメーター」 を参照してください。適用可能な演算子の一覧は、『Server Administration Guide』 の Supported Operators for Granular Search を参照してください。入力時に自動サジェスト機能が利用できます。and 演算子と or 演算子を使用して、クエリーを組み合わせることもできます。たとえば、kernel パッケージに関するセキュリティーアドバイザリーのみを表示するには、以下を入力します。
      type = security and package_name = kernel
      Copy to Clipboard Toggle word wrap
      Enter 押して検索を開始します。
  3. 調べるエラータの Errata ID をクリックします。
    • 説明 タブ は、更新されたパッケージの説明や、更新によって提供される重要な修正および機能拡張が記載されています。
    • コンテンツホスト タブで は、 「エラータのコンテンツホストへの適用」 で説明されているように、選択したコンテンツホストにエラータを適用できます。
    • リポジトリー タブに 、エラータが含まれているリポジトリーが一覧表示されます。リポジトリーはフィルターを使用して環境やコンテンツビューで絞り込むことができ、リポジトリー名で検索できます。
Expand
表4.1 エラータ検索で利用できるパラメーター
パラメーター説明
bug Bugzilla 番号での検索。 bug = 1172165
cve CVE 番号での検索。 cve = CVE-2015-0235
id エラータ ID での検索。自動サジェストシステムにより、入力時に利用可能な ID のリストが表示されます。 id = RHBA-2014:2004
issued 発行日による検索。正確な日付( Feb16,2015 など)を指定したり、 キーワードを使用することもできます(例 : Yesterday または " 1 hour ago )。時間の範囲は、"<" 演算子と ">" 演算子を使用して指定できます。 issued < "Jan 12,2015"
package 完全なパッケージビルド名による検索。自動サジェストシステムにより、入力時に利用可能なパッケージのリストが表示されます。 package = glib2-2.22.5-6.el6.i686
package_name パッケージ名による検索。自動サジェストシステムにより、入力時に利用可能なパッケージのリストが表示されます。 package_name = glib2
severity セキュリティー更新によって修正される問題の重大度による検索。CriticalImportant、または Moderate を指定します。 severity = Critical
title アドバイザリーのタイトルによる検索。 title ~ openssl
type アドバイザリーのタイプによる検索。securitybugfix、または enhancement を指定します。 type = bugfix
更新 最新更新日による検索。issued パラメーターの同じ形式を使用できます。 updated = "6 days ago"

4.2. エラータのコンテンツホストへの適用

以下の手順では、1 つ以上のエラータをコンテンツホストに適用する方法を示しています。

手順4.2 単一エラータをコンテンツホストに適用するには、以下を実行します。

  1. コンテンツエラータ に移動して、利用可能なエラータの一覧を表示します。
  2. 適用するエラータの Errata ID をクリックします。
  3. コンテンツホスト タブ で、 更新するコンテンツホストを 1 つまたは複数選択します。利用可能なコンテンツホストを環境別にフィルターし、名前で検索できます。ページ上部のチェックボックスを選択すると、ライフサイクル環境にインストール可能なエラータがすでにあるコンテンツホストのみが表示されます。
  4. Apply to Hosts をクリックします。
    • エラータが 適用される と、コンテンツビューの新しいマイナーバージョンが作成されます。公開直後にエラータをコンテンツホストに適用する を選択すると、Satellite は更新されたコンテンツビューのプロモート時にエラータをコンテンツホストに自動的にインストールします。そうしないと、コンテンツホストにエラータをインストールできるようになります。インストール可能なエラータは、同じ手順を使用して後で適用することも、手順4.4「インストール可能なエラータをコンテンツホストに適用するには、以下を実行します。」 で説明されているようにコンテンツホストごとに手動で適用することもできます。
    • エラータがインストール 可能 である場合、エラータは選択したコンテンツホストのライフサイクル環境にすでに存在しますが、まだインストールされていない場合、コンテンツビューの新規バージョンは作成されません。
  5. Confirm をクリックします。

手順4.3 複数のエラータをコンテンツホストに適用するには、以下を実行します。

  1. コンテンツエラータ に移動して、利用可能なエラータの一覧を表示します。
  2. エラータ ID フィールドの左側にあるチェックボックスを選択して、適用するエラータを選択します。
  3. Apply Errata をクリックして、選択したすべてのエラータを適用します。
  4. 更新するコンテンツホストを 1 つ以上選択します。利用可能なコンテンツホストを環境別にフィルターし、名前で検索できます。ページ上部のチェックボックスを選択すると、ライフサイクル環境にインストール可能なエラータがすでにあるコンテンツホストのみが表示されます。
  5. Next をクリックします。選択したエラータが 適用可能 な場合は、コンテンツビューの新規マイナーバージョンが作成されます。公開直後にエラータをコンテンツホストに適用する を選択した場合、更新されたコンテンツビューのプロモート時に、Satellite はコンテンツホストにエラータを自動的にインストールします。インストール可能なエラータのみが選択されている場合、それらは新しいコンテンツビューバージョンを作成せずにインストールされます。
コンテンツホストのライフサイクル環境にインストール可能なエラータが含まれる場合は、手順4.4「インストール可能なエラータをコンテンツホストに適用するには、以下を実行します。」 の説明に従って コンテンツ ホストページからインストールすることができます。これにより、コンテンツホストを管理するパーミッションがあるユーザーがエラータを適用できますが、より高いレベルでのエラータ管理には付与されません。同様に、「エラータのホストコレクションへの追加」 で説明されているように、インストール可能なエラータをホストコレクションに適用できます。

手順4.4 インストール可能なエラータをコンテンツホストに適用するには、以下を実行します。

  1. Hostsコンテンツ に移動します。
  2. 管理するコンテンツホストの名前をクリックします。
  3. Errata タブで、インストールするエラータを選択します。
  4. 選択 項目の適用 をクリックして、選択した更新をインストールします。

4.3. エラータ通知のサブスクライブ

サーバー 『管理ガイド の 電子メール通知の 設定 で説明されているように、Satellite ユーザーに対してメール通知を設定 する』 ことができます。ユーザーには、適用かつインストール可能なエラータのサマリーや、コンテンツビューのプロモーションに関する通知、またはリポジトリーの同期後に受け取ることができます。

第5章 セキュリティーコンプライアンス管理

セキュリティーコンプライアンス管理は、セキュリティーポリシーの定義、それらのポリシーへのコンプライアンスの監査、およびコンプライアンス違反のインスタンスの解決などを行う継続的なプロセスです。セキュリティーポリシーが定義されると、監査が実行され、ポリシーへの準拠が確認されます。コンプライアンス違反は、組織の設定管理ポリシーに従って管理されます。セキュリティーポリシーは、ホスト固有のものから業界共通のものであるため、ポリシー定義には柔軟性が必要になります。
Security Content Automation Protocol (SCAP)は、セキュリティー設定ポリシーの定義を有効にします。たとえば、セキュリティーポリシーは、Red Hat Enterprise Linux を実行しているホストの場合に SSH 経由のログインを root アカウントに許可しないように指定することが可能です。Satellite 6 では、OpenSCAP プロジェクトが提供するツールは、セキュリティーコンプライアンスの監査を実装するために使用されます。OpenSCAP の詳細については、Red Hat Enterprise Linux 7 セキュリティーガイド を参照してください。Satellite Web UI は、Red Hat Satellite が管理する全ホストで、スケジュールされたコンプライアンスの監査とレポートを有効にします。
以下の仕様が OpenSCAP でサポートされています。
  • XCCDF: Extensible Configuration Checklist Description Format (バージョン 1.2)
  • OVAL: Open Vulnerability and Assessment Language (バージョン 5.11)
  • Asset Identification (バージョン 1.1)
  • ARF: Asset Reporting Format (バージョン 1.1)
  • CCE: Common Configuration Enumeration (バージョン 5.0)
  • CPE: Common Platform Enumeration (バージョン 2.3)
  • CVE: Common Vulnerabilities and Exposures
  • CVSS: Common Vulnerability Scoring System (バージョン 2.0)

5.1. SCAP について

5.1.1. SCAP コンテンツ

SCAP コンテンツは、ホストのチェックに使用される設定およびセキュリティーベースラインが含まれるデータストリーム形式のコンテンツです。チェックリストは extensible checklist configuration description format (XCCDF)および open vulnerability and assessment language (OVAL)の脆弱性で説明されています。ルール とも呼ばれるチェックリスト項目は、システム項目の必要な設定を表します。たとえば、どのユーザーも root ユーザーアカウントを使用して SSH 経由でホストにログインできないように指定することができます。ルールは 1 つまたは複数のプロファイルにグループ化でき、複数の プロファイル でルールを共有できるようにすることができます。SCAP コンテンツはルールとプロファイルの両方で設定されています。
SCAP コンテンツは、作成することも、ベンダーから取得することも可能です。サポート対象のプロファイルは、Red Hat Enterprise Linux の scap-security-guide パッケージで提供されます。SCAP コンテンツの作成については本ガイドで扱いませんが、独自のコンテンツをダウンロード、デプロイ、変更、作成する方法については、 Red Hat Enterprise Linux 7 セキュリティーガイド または Red Hat Enterprise Linux 6 セキュリティーガイド を参照してください。Red Hat Enterprise Linux で提供される SCAP コンテンツは、SCAP 仕様 1.2 に準拠しています。
Satellite 6 の OpenSCAP コンポーネントと共に提供されるデフォルトの SCAP コンテンツは、Red Hat Enterprise Linux のバージョンによって異なります。
  • Red Hat Enterprise Linux 6 には、Red Hat Enterprise Linux 6 向けのコンテンツがインストールされます。
  • Red Hat Enterprise Linux 7 には、Red Hat Enterprise Linux 6 と Red Hat Enterprise Linux 7 の両方のコンテンツがインストールされます。

5.1.2. XCCDF プロファイル

XCCDF プロファイルは、ホストまたはホストグループの評価に使用されるチェックリストです。プロファイルは、業界標準かカスタム標準かに関係なく、標準への準拠を確認するために作成されます。
利用可能なプロファイルの一覧を表示するには、Satellite Web UI を開いて ホストポリシー に移動し、対象のポリシーの横にあるドロップダウンリストから 編集 を選択して、SCAP コンテンツ タブを選択します。対象の SCAP コンテンツ を選択し、XCCDF プロファイル ドロップダウンリストで利用可能なプロファイルを参照します。
Satellite 6 で提供されるプロファイルは、OpenSCAP project から取得できます。

5.1.3. コンプライアンスポリシー

コンプライアンスポリシー とも呼ばれる定期監査は、XCCDF プロファイルに対して指定したホストのコンプライアンスをチェックするスケジュールタスクです。スキャンが実行されるスケジュールは Satellite Server で指定されますが、スキャン自体はホストで行われます。スキャンが完了すると、Asset Reporting File (ARF)が XML 形式で生成され、Satellite Server にアップロードされます。スキャンの結果はコンプライアンスポリシーダッシュボードで確認できます。コンプライアンスポリシーは、スキャンされたホストに変更を加えません。OpenSCAP コンテンツには複数のプロファイルとそれに関連するルールが含まれますが、デフォルトではポリシーは含まれません。

5.2. インストール

5.2.1. OpenSCAP パッケージのインストール

手順5.1 OpenSCAP パッケージのインストール

OpenSCAP プラグインおよびコンテンツを Satellite Server およびすべての外部 Capsule Server にインストールします。
  1. Satellite Server で、OpenSCAP プラグインおよびコンテンツをインストールします。
    1. # satellite-installer --enable-foreman-plugin-openscap
      Copy to Clipboard Toggle word wrap
      インストールが成功した場合は、進捗インジケーターで示され、Success! という単語が表示されます。OpenSCAP プラグインは、Hosts メニューの下にある Satellite Web UI の Compliance セクションに追加します。このセクションには、以下のページが含まれます。
      • ポリシー
      • SCAP コンテンツ
      • Report
    2. # yum install puppet-foreman_scap_client
      Copy to Clipboard Toggle word wrap
  2. すべての外部 Capsule Server で、OpenSCAP プラグインおよびコンテンツをインストールします。
    注記
    OpenSCAP 機能を Capsule Server で有効にする場合、Puppet はそのサーバーですでに有効になっている必要があります。
    # satellite-installer --enable-foreman-proxy-plugin-openscap
    Copy to Clipboard Toggle word wrap
    インストールが成功した場合は、進捗インジケーターで示され、Success! という単語が表示されます。これは、OpenSCAP スキャンを実行するためにホストを設定するのに必要な Puppet クラスを提供し、自動コンプライアンススキャン用の Cron ジョブを作成します。
  3. Puppet マスターロールを持つ外部 Capsule Server に、OpenSCAP クライアントをインストールします。
    # yum install puppet-foreman_scap_client
    Copy to Clipboard Toggle word wrap
    関連する外部 Capsule Server を特定するには、Satellite Web UI を開いてから、InfrastructureCapsules に移動し、Features 列に記載されている Puppet を使用する外部 Capsule Server を特定します。

5.2.2. デフォルト OpenSCAP コンテンツのロード

手順5.2 デフォルト OpenSCAP コンテンツのロード

  • OpenSCAP コンテンツを Satellite Server にロードします。
    # foreman-rake foreman_openscap:bulk_upload:default
    Copy to Clipboard Toggle word wrap

5.2.3. OpenSCAP Puppet モジュールのインポート

手順5.3 OpenSCAP Puppet モジュールのインポート

  1. OpenSCAP には Puppet 環境が必要ですが、デフォルトではそれらは Puppet モジュールを含むコンテンツビュー用にのみ作成されます。利用可能な Puppet 環境をリスト表示するには、Satellite Web UI を開いて、環境の 設定 に移動します。
    Puppet 環境がない場合は、Satellite Server で CLI セッションを開き、実稼働 環境の Puppet 環境のディレクトリーを作成します。
    # mkdir -p /etc/puppet/environments/production/modules
    Copy to Clipboard Toggle word wrap
  2. OpenSCAP コンテンツを選択した Puppet 環境にインポートします。OpenSCAP で監査する各ホストは、Puppet 環境に関連付けられている必要があります。
    1. Satellite Web UI で、コンテキストメニューの Any Organization および Any Location を選択します。
    2. 環境の 設定 に移動します
    3. Import をクリックしてから、Import from satellite.example.com をクリックします。
    4. OpenSCAP を使用して監査するホストに関連付けられた各 Puppet 環境について、チェックボックスを選択してから 更新 をクリックします。Puppet 環境が他に存在しない場合は、実稼働 環境を選択します。
      さらに、foreman_scap_client Puppet モジュールが選択した環境に追加されます。
    5. foreman_scap_client Puppet モジュールが追加されていることを確認します。
      ConfigureEnvironments に移動し、Puppet 環境の行の Classes をクリックします。この手順は、foreman_scap_client Puppet クラスがリストされている場合は正常に実行されます。

5.2.4. 追加の SCAP コンテンツのアップロード

追加の SCAP コンテンツは、各自で作成したものか他から取得したものかを問わず、Satellite Server にアップロードできます。SCAP コンテンツは、ポリシーに適用される前に Satellite Server にインポートされる必要があります。たとえば、Red Hat Enterprise Linux 7.2 リポジトリーで利用可能な scap-security-guide RPM パッケージには、Payment Card Industry Data Security Standard (PCI-DSS)バージョン 3 向けのプロファイルが含まれます。このコンテンツは、オペレーティングシステムのバージョン固有ではないため、Red Hat Enterprise Linux 7.2 を実行していない場合でも Satellite Server にアップロードできます。

手順5.4 追加の SCAP コンテンツのアップロード

  1. Satellite Web UI にログインします。
  2. HostsSCAP content に移動し、 Upload New SCAP Content をクリックします。
  3. Title テキストボックスにタイトルを入力します。例:RHEL 7.2 SCAP Content
  4. ファイルの選択 をクリックして、SCAP コンテンツファイルが含まれるロケーションに移動し、開く を選択します。
  5. 送信 をクリックします。
SCAP コンテンツファイルが正常にロードされると、Successfully created RHEL 7.2 SCAP Content (RHEL 7.2 SCAP コンテンツ が正常に作成されました)といったメッセージが表示され、SCAP コンテンツ のリストに新しいタイトルが含まれます。

5.3. コンプライアンスポリシーの管理

5.3.1. ポリシーの作成

以下の手順に従ってコンプライアンスポリシーを作成します。ここでは 、指定された時間にロケーションおよびホストまたはホストグループのいずれかに適用される SCAP コンテンツとプロファイルを指定します。
前提条件

手順5.5 ポリシーを作成するには、以下を実行します。

  1. Satellite Web UI で HostsPolicies に移動し、New Policy をクリックしてウィザードの手順に従います。
  2. ポリシーの名前、説明(オプション)を入力してから 次へ をクリックします。
  3. 適用する SCAP コンテンツおよび XCCDF プロファイルを選択してから 次へ をクリックします。
  4. ポリシーを適用する時間を指定してから 次へ をクリックします。
    Period ドロップダウンリストから、WeeklyMonthly、または Custom を選択します。
    • Weekly を選択したら Weekday ドロップダウンリストから曜日を選択します。
    • Monthly を選択したら Day of month フィールドで日付を指定します。
    • Custom を選択した場合は、Cron line フィールドに有効な Cron 式を入力します。
    Custom オプションでは、毎週 もしくは 毎月 オプションよりもスケジュールに柔軟性を持たせることができます。
  5. ポリシーを適用するロケーションを選択してから 次へ をクリックします。
  6. ポリシーを適用する組織を選択してから 次へ をクリックします。
  7. ポリシーを適用するホストグループを選択してから 次へ をクリックします。
  8. 送信 をクリックします。
Puppet エージェントが選択したホストグループに属するホスト、またはポリシーが適用されているホストで実行される場合、OpenSCAP クライアントがインストールされ、Cron ジョブがポリシーの指定されたスケジュールとともに追加されます。SCAP Content タブでは、すべてのターゲットホストのディレクトリー /var/lib/openscap/content/ に配信される SCAP コンテンツの名前を指定します。

5.3.2. ポリシーの表示

以下の手順に従って、特定の OpenSCAP コンテンツおよびプロファイルの組み合わせによって適用されるルールをプレビューします。これは、ポリシーを計画する場合に便利です。

手順5.6 ポリシーを表示するには、以下を実行します。

  1. Satellite Web UI で、HostsPolicies に移動します。
  2. ガイドの表示 をクリックします。

5.3.3. ポリシーの編集

ポリシーを編集するには、以下の手順に従います。編集されたポリシーは、次に Puppet エージェントが Satellite Server で更新をチェックする際にホストに適用されます。これはデフォルトで 30 分ごとに実行されます。

手順5.7 ポリシーを編集するには、以下を実行します。

  1. Satellite Web UI で、HostsPolicies に移動します。
  2. ポリシーの名前の右側にあるドロップダウンリストから、編集 を選択します。
  3. 必要な属性を編集します。
  4. 送信 をクリックします。
編集されたポリシーは、次に Puppet エージェントが Satellite Server で更新をチェックする際にホストに適用されます。これはデフォルトで 30 分ごとに実行されます。

5.3.4. ポリシーの定義

以下の手順を実行して既存のポリシーを削除します。
  1. Satellite Web UI で、HostsPolicies に移動します。
  2. ポリシーの名前の右側にあるドロップダウンリストから、削除 を 選択します。
  3. 確認メッセージで OK をクリックします。

5.3.5. ホストへのポリシーの追加

ホストにポリシーを追加するには、以下の手順に従います。
  1. Satellite Web UI で、HostsAll hosts に移動します。
  2. ポリシーを追加するホストを選択します。
  3. Select Action をクリックします。
  4. 開いた新しいパネルで、利用可能なポリシーの一覧から適切なポリシーを選択し、Submit をクリックします。

5.4. コンプライアンスの監視

コンプライアンスの監視は、監査が実行され、コンプライアンス違反が特定されるようにするための継続的なタスクです。Red Hat Satellite 6 では、コンプライアンスを一元化して監視および管理できます。Satellite Management の下のホストがカスタムスケジュールに従ってコンプライアンスをチェックし、詳細が Satellite Server によって照合されます。コンプライアンスダッシュボードでは、ホストのコンプライアンスの概要が表示され、そのポリシーの範囲内にある各ホストの詳細を表示できます。コンプライアンスレポートは、各ホストのコンプライアンスを適用可能なポリシーで詳細に分析します。この情報を使用して、各ホストが提示するリスクを評価し、ホストがコンプライアンスを満たすために必要なリソースをより適切に管理できます。
SCAP を使用してコンプライアンスを監視する際の共通の目的には以下が含まれます。
  • ポリシーコンプライアンスの表示
  • コンプライアンスの変更の検知
Satellite Web UI は、これらの目的を達成するために必要なすべての情報を提供します。コンプライアンスポリシーダッシュボードでポリシーコンプライアンスを確認します。コンプライアンスレポートの履歴を表示するか、または変更通知のメールにサブスクライブすることにより、ポリシーコンプライアンスの変更を検出します。

5.4.1. コンプライアンスポリシーダッシュボード

コンプライアンスポリシーダッシュボードは、ホストのポリシーへのコンプライアンス状況の概要を示します。コンプライアンスポリシーのダッシュボードを表示するには、Satellite Web UI を開いて ホストポリシー 移動 し、ポリシーの名前をクリックします。ダッシュボードに次の情報が提供されます。
  • ホストのポリシーへのコンプライアンス状況のハイレベルビューを表示するリングチャート
  • ホストのポリシーコンプライアンス状況についての統計の内訳 (表形式)
  • 各ホストのポリシーの最新レポートへのリンク
ダッシュボードビューは、ホストのコンプライアンスの統計的な概要を提供し、コンプライアンス管理を開始点として使用します。コンプライアンス違反として評価されたすべてのホストについては、Failed の統計から、コンプライアンスタスクの優先付けに便利なメトリックが提供されます。Never audited として検出されたホストも、ステータスが不明なため、優先する必要があります。

図5.1 コンプライアンスポリシーダッシュボード

5.4.2. コンプライアンスレポートの概要

コンプライアンスレポートには、ホストに対するポリシー実行の結果が出力されます。利用可能なコンプライアンスレポートをリスト表示するには、Satellite Web UI を開き、ホストレポート に 移動ます。各レポートで、ポリシーごとの合格または不合格のルールの合計数が一覧表示されます。デフォルトでは、すべてのレポートが日付の降順に表示されます。並べ替え順序を変更するには、並べ替える列のラベルをクリックします。同じラベルを再度クリックすると、降順または昇順に切り替わります。コンプライアンスレポート ページから View Report をクリックして個別のレポートを表示するか、Search フィールドを使用してレポートのリストをホストまたはホストのサブセットに制限します。コンプライアンスレポートを削除するには、View Report の横にあるドロップダウンリストから Delete を選択します。
ホストのポリシーコンプライアンスを管理する場合は、時間の経過とともにコンプライアンスの変更をモニターすると便利です。Satellite 6 は、コンプライアンスの変更を手動で監視するために必要な情報を提供します。また、電子メールで通知します。検索 フィールドを使用して、レポートのリストを 1 つ以上のホストに制限し、「コンプライアンスレポートの検索」 で説明されているように変更を手動で評価します。サーバー 『管理ガイド』 の 電子メール 通知の設定 で説明されているように、コンプライアンス変更の電子メールメッセージにサブスクライブします。

図5.2 コンプライアンスレポートの概要

5.4.3. コンプライアンスレポートの検索

コンプライアンスレポートの検索フィールドを使用すると、レポートのリストを絞り込むことができます。ホストのサブセットに注意を絞り込むことで、最も必要なリソースを集中できます。フィルターを適用するには、検索 フィールドに検索条件を入力し、Enter を押すか、 Search をクリックします。実行される検索では大文字と小文字が区別されません。空の 検索 フィールドをクリックして、利用可能な検索パラメーターの一覧を表示します。
利用可能 なすべての検索演算子の詳細は、サーバー 『管理ガイド』 の 詳細な検索に対してサポートされる 演算子 を参照してください。論理演算子と、,not および の論理演算子を使用する 複雑なクエリーを作成できます。正規表現は有効な検索基準ではありませんが、1 つの検索式に複数のフィールドを使用できます。

論理演算子

  • not: 式を否定します。
  • : オブジェクト には 指定したプロパティーが必要です。
  • および: 検索条件を組み合わせます。

ユースケースの検索

以下の検索条件では、6 つ以上のルールがパスしなかったコンプライアンスレポートを検索します。

failed > 5
Copy to Clipboard Toggle word wrap
以下の検索条件では、ホスト名に文字列 prod- が含まれるホストで、2015 年 11 月 5 日以降に作成されたコンプライアンスレポートが検索されます。
host ~ prod- AND date > "Nov 5, 2015"
Copy to Clipboard Toggle word wrap
以下の検索条件では、1 時間前から compliance_policy rhel7_audit で生成されたすべてのレポートが検索されます。
"1 hour ago" AND compliance_policy = date = "1 hour ago" AND compliance_policy = rhel7_audit
Copy to Clipboard Toggle word wrap
利用可能なコンプライアンスレポートを再度一覧表示するには、Search 条件を削除して Enter を押すか、Search をクリックします。

手順5.8 検索をブックマークするには、以下を実行します。

  1. 検索条件を適用します。
  2. Search リストから、Bookmark this search を選択します。
  3. Name フィールドに入力します。
    ブックマークをこの Satellite インスタンスの他のユーザーが利用できるようにするには、Public チェックボックスを選択します。
  4. 送信 をクリックします。
ブックマークを使用するには、HostsReports に移動し、Search ボタンの横にあるドロップダウン項目をクリックして、ブックマークをクリックします。

5.4.4. コンプライアンスレポートの表示

HostsReports に移動し、特定のホストの行で View Report をクリックします。
コンプライアンスレポートは以下のセクションで設定されています。
  • はじめに
  • Evaluation Characteristics (評価特性)
  • Compliance and Scoring (コンプライアンスおよびスコアリング)
  • Rule Overview (ルールの概要)
5.4.4.1. Evaluation Characteristics (評価特性)
このセクションでは、評価されたホスト、評価に使用されたプロファイル、評価の開始と終了など、特定のプロファイルに対する評価についての詳細情報を提供します。参照用として ホストの IPv4、IPv6、および MAC アドレスもリスト表示されます。

Evaluation Characteristics (評価特性)

Target machine
評価対象ホストの完全修飾ドメイン名 (FQDN)。例: test-system.example.com
Benchmark URL
ホストが評価された SCAP コンテンツの URL。例: /var/lib/openscap/content/1fbdc87d24db51ca184419a2b6f
Benchmark ID
ホストが評価されたベンチマークの識別子。ベンチマークは、プロファイルのセットです。Example: xccdf_org.ssgproject.content_benchmark_RHEL_7.
Profile ID
ホストが評価されたプロファイルの識別子。Example: xccdf_org.ssgproject_content_profile_rht-ccp.
Started at
評価の開始日時 (ISO 8601 形式)。例: 2015-09-12T14:40:02
finished at
評価の終了日時 (ISO 8601 形式)。例: 2015-09-12T14:40:05
Performed by
ホストで評価を実行したローカルアカウントの名前。例: root

図5.3 Evaluation Characteristics (評価特性)

5.4.4.2. Compliance and Scoring (コンプライアンスおよびスコアリング)
このセクションでは、ホストがプロファイルのルールに準拠しているかどうかの概要、重大度別のコンプライアンスの内訳、およびパーセンテージで示される全体のコンプライアンススコアを示します。ルールへのコンプライアンスがチェックされなかった場合、これは ルールの 結果Other として分類されます。

図5.4 Compliance and Scoring (コンプライアンスおよびスコアリング)

5.4.4.3. ルールの概要
このセクションでは、階層的に示されるルールと共にすべてのルールの詳細とコンプライアンスの結果を示します。
コンプライアンスレポートに組み込まれるルールのリストを制限するためにチェックボックスを選択したり、クリアしたりします。たとえば、非コンプライアンスを重点的にレビューする場合には、pass および informational チェックボックスをクリアします。
すべてのルールを検索するには、検索 フィールドに条件を入力します。検索は、入力時に動的に適用されます。検索 フィールドは、単一のプレーンテキストの検索用語のみを受け入れ、それは大文字と小文字を区別しない検索に適用されます。検索の実行時には、説明が検索条件に一致するルールのみがリスト表示されます。検索フィルターを削除するには、検索条件を削除します。
各結果の説明については、結果 コラムに示されるステータスの上にカーソルを移動します。

図5.5 ルールの概要

5.4.4.4. ルール結果の検査
ホストがルールのコンプライアンスに失敗した理由を特定するには、ルールのタイトルをクリックします。開いたウィンドウには、ルールの説明(利用可能な場合にホストが準拠させる手順を含む)、ルールの根拠、場合によっては修復スクリプトなどの詳細が提供されます。

図5.6 ルール評価の結果

警告
推奨される修復アクションやスクリプトは、先に実稼働以外の環境でテストしてから実装してください。

5.4.5. コンプライアンスのメール通知

Satellite Server は、Openscap ポリシーサマリーのメール通知をサブスクライブしているすべてのユーザーに、OpenSCAP サマリー メールを送信します(サーバー 『管理ガイド』の 電子メール通知の 設定 を参照)。ポリシーが実行されるたびに、Satellite は直前の実行との比較で結果をチェックし、変更がないかどうかを確認します。メールは各サブスクライバーがリクエストする頻度で送信され、各ポリシーのサマリーと直近の結果を提供します。
OpenSCAP サマリー メールメッセージには、次の情報が含まれます。
  • 対象とする期間の詳細。
  • すべのホストの合計 (状況別): 変更済み、準拠、および非準拠。
  • 各ホストの表形式の内訳と、合格、失敗、変更済み、または結果が不明な場合などのルールの合計を含む最新ポリシーの結果。
以下は、OpenSCAP 概要のメールメッセージの例になります。

第6章 コンテナーの使用

Docker は、Linux コンテナー内のアプリケーションのデプロイメントを自動化するオープンソースプロジェクトで、アプリケーションとそのランタイム依存関係をコンテナーにパッケージ化する機能を提供します。Linux コンテナーは、セキュリティーを強化する一方で、迅速なアプリケーションデプロイメント、単純なテスト、メンテナンス、およびトラブルシューティングを可能にします。詳細は、Red Hat カスタマーポータルの記事 Get Started with Docker Formatted Container Images on Red Hat Systems を参照してください。[1].
Docker フォーマットのコンテナーは以下の部分で設定されています。
  • コンテナー: アプリケーションのサンドボックス各コンテナーは、必要な設定データを保持するイメージに基づいています。イメージからコンテナーを起動すると、書き込み可能な階層がこのイメージの上部に追加されます。コンテナーをコミットするたびに、変更を保存する新しいイメージ層が追加されます。
  • イメージ: 変更されることのない、コンテナーの設定の静的スナップショット。コンテナーに加えた変更は、新しいイメージレイヤーを作成することによってのみ保存できます。各イメージは、複数の親イメージに依存します。
  • プラットフォームイメージ: 親を持たないイメージ。プラットフォームイメージは、コンテナー化されたアプリケーションの実行に必要なランタイム環境、パッケージ、およびユーティリティーを定義します。プラットフォームイメージは書き込み可能ではないため、その上部にスタックされたコピーイメージに変更が反映されます。Red Hat Satellite から Red Hat Enterprise Linux プラットフォームイメージにアクセスする方法は、例6.1「Satellite での Red Hat Enterprise Linux コンテナーの作成」 を参照してください。
  • レジストリー: ダウンロード可能なイメージが含まれるパブリックまたはプライベートアーカイブ。一部のレジストリーでは、ユーザーがイメージをアップロードして他のユーザーが利用できるようにすることができます。Red Hat Satellite では、ローカルおよび外部のレジストリーからイメージをインポートできます。Satellite 自体はホストのイメージレジストリーとして機能できますが、ホストは変更をレジストリーに戻すことができません。詳細は、を参照してください。 「コンテナーの作成」
  • タグ: リポジトリー内のイメージを区別するために使用するマーク(通常はイメージに保存されるアプリケーションのバージョン)。リポジトリーは、コンテナーレジストリー内の同様のイメージをグループ化するために使用されます。イメージには一意の英数字の ID のみがあるため、フォームまたは リポジトリー: :タグ を使用すると、人間が判読できるイメージを識別できます。詳しい情報は、「コンテナータグの使用」 および 「リポジトリーの管理」 を参照してください。
Red Hat Satellite では、オンプレミスレジストリーを作成し、さまざまなソースからイメージをインポートし、コンテンツビューを使用してそれらをコンテナーに配信できます(コンテンツビューにイメージを読み込む方法は、「リポジトリーのコンテンツビューへの追加」 を参照してください)。Satellite は、コンテナーを実行するサーバーとして機能する 1 つ以上の Docker コンピュートリソースの作成をサポートします。このようにして、イメージのインポート、このイメージに基づくコンテナーの起動、コンテナーのアクティビティーの監視、さらに伝搬可能な新規イメージレイヤーに状態をコミットできます。

6.1. コンテナーの管理

以下のセクションでは、コンテナーを作成し、表示し、開始し、停止し、コミットする方法について示します。

前提条件

Red Hat Satellite では、Docker プロバイダータイプのコンピュートリソースにのみコンテナーをデプロイできます。そのため、コンテナーを初めて表示または作成しようとすると、Satellite は Docker コンピュートリソースの作成を要求します。これを行うには、まずコンテナーホストを作成し、次にこのホストをコンピュートリソースとして指定します。

手順6.1 コンテナーホストを準備するには、以下を実行します。

  1. Red Hat カスタマーポータルの Getting Started with Docker Formatted Container Images on Red Hat Systems ガイドの Getting Docker in RHEL 7 セクションで説明されているように、イメージをホストするために Red Hat Enterprise Linux 7 サーバーを準備し、このサーバーで Docker サービスを有効にします。[2].コンテナーホストは、Satellite Server と同じマシンにデプロイすることも、個別にデプロイすることも可能です。
    注記
    現在、コンテナーホスト用にサポートされているシステムは Red Hat Enterprise Linux 7 のみです。docker パッケージは rhel-7-server-extras-rpms リポジトリーで利用できます。Red Hat Enterprise Linux 6 システムは現在、ホストコンテナーではサポートされていません。
  2. コンテナーホストで以下のコマンドを実行し、Satellite Server の CA 証明書をインストールします。
    rpm -Uvh https://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
    Copy to Clipboard Toggle word wrap
    ここで、satellite.example.com は Satellite Server の完全修飾ドメイン名に置き換えます。コンテナーホストがすでに Satellite ホストとして登録されている場合は、この手順をスキップしてください。
  3. コンテナーホストのロケーションに応じて以下のタスクを実行します。
    • コンテナーホストが Satellite Server と同じマシンにある場合には、以下を実行します。
      1. docker ユーザーグループを作成し、foreman ユーザーをそれに追加します。
        # groupadd docker
        # usermod -aG docker foreman
        Copy to Clipboard Toggle word wrap
      2. 以下のように、/etc/sysconfig/docker ファイルの OPTIONS 変数を変更します。
        OPTIONS='--selinux-enabled -G docker'
        Copy to Clipboard Toggle word wrap
      3. 影響を受けるサービスを再起動して変更を適用します。
        # systemctl restart docker.service
        # katello-service restart
        Copy to Clipboard Toggle word wrap
    • コンテナーホストが Satellite Server 以外のマシンにある場合は、以下を実行します。
      1. コンテナーホスト上のポートを開いて、Satellite Server と通信します。これを行うには、/etc/sysconfig/docker ファイルの OPTIONS 変数を以下のように変更します。
        OPTIONS='--selinux-enabled -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock'
        Copy to Clipboard Toggle word wrap
        TLS が有効な場合、ポート 2376 を使用できます。
      2. 以下のように docker サービスを再開し、設定を検証します。
        # systemctl restart docker.service
        # systemctl status docker.service
        Copy to Clipboard Toggle word wrap

手順6.2 Docker コンピュートリソースを作成するには、以下を実行します。

  1. ポート 5000 が Satellite Server で有効になっていることを確認します。コンテナーホストはこのポートを使用して、Satellite Server のコンテンツビューからイメージをプルします。
  2. 「コンピュートリソース」 の説明に従って、コンピュートリソースを作成します。コンテナーホストの場所に従ってリソース URL を指定します。
    1. コンテナーホストが Satellite Server と同じマシンにある場合は、リソース URL として unix://var/run/docker.sock を設定します。
    2. コンテナーホストが Satellite Server 以外のマシンにある場合、以下の形式で URL を指定します。
      http://container_host_fqdn:2375
      Copy to Clipboard Toggle word wrap
      ここで、container_host_fqdn はコンテナーホストの完全修飾ドメイン名を表し、Satellite との通信用にコンテナーホストで開かれるポート番号は 2375 または TLS を使用している場合は 2376 のいずれかになります。
  3. Test Connection をクリックして、コンテナーホストが利用可能かどうかをテストします。
  4. Submit をクリックしてコンピュートリソースを作成します。

6.1.1. コンテナーの作成

Satellite に Docker コンピュートリソースが少なくとも 1 つある場合は、コンテナーを作成できます。新しいコンテナーを作成するには、手順6.3「コンテナーを作成するには、以下を実行します。」 で説明されている手順に従います。既存のコンテナーをモニターする方法は、「コンテナーのモニター」 を参照してください。
コンテナーを作成するには、まずイメージをインポートする必要があります。これは、プラットフォームイメージまたは以前に作成したレイヤー化されたイメージである場合があります。Satellite は以下のイメージソースをサポートします。
  • ローカルコンテンツ: コンテナーの作成時に コンテンツビュー オプションによって表されます。このオプションを使用すると、特定のコンテンツビューおよびライフサイクル環境の Capsule Server にすでに存在するリポジトリーからイメージをインポートできます。ローカルレジストリーの作成および設定方法の詳細は、「リポジトリーの管理」 を参照してください。
  • docker Hub: Docker Hub レジストリーを検索して、そこからイメージをプルすることができます。コンテンツの検証済みの信頼できるイメージだけを取得するようにしてください。
  • 外部レジストリー: 以前に作成した外部レジストリーからイメージをインポートできます。Red Hat Satellite でのレジストリーの作成の詳細は、「外部レジストリーのインポート」 を参照してください。
注記
既存のコンテナーの設定を変更することはできません。設定を変更するには、手順6.3「コンテナーを作成するには、以下を実行します。」 の説明に従って、設定を変更して代替コンテナーを作成する必要があります。したがって、ワークフローでコンテナーを置き換えることができることを確認してください。

手順6.3 コンテナーを作成するには、以下を実行します。

  1. ContainersNew Container に移動します。あるいは、ContainersAll Containers に移動し、New container をクリックします。
  2. コンテナー作成の Preliminary 段階で、以下の設定を設定します。
    • Compute resource タブで、Deployed on ドロップダウンメニューからコンピュートリソースを選択します。コンピュートリソースについての詳細は、「コンピュートリソース」 を参照してください。
    • Locations タブで、新しいコンテナーを利用可能にするロケーションを選択します。
    • 組織 タブで、新規コンテナーを利用可能にする組織を選択します。
    Next をクリックして先に進みます。
  3. コンテナー作成のイメージ段階で、コンテナーのベースとして機能するイメージをインポートします。これは、プラットフォームイメージ、または以前に作成したレイヤー構造イメージである可能性があります。次のいずれかのオプションを選択します。
    • Content View タブを選択して、ライフサイクル環境からイメージをインポートします。ライフサイクル環境、コンテンツビュー、リポジトリー、タグ、および Capsule Server を指定します。
    • Docker Hub タブを選択して、Docker Hub レジストリーからイメージをインポートします。検索 フィールドにイメージ名を入力すると、Satellite は自動的にコンピュートリソースを検索します。探している glass アイコンをクリックして、Docker Hub を検索します。検索結果の一覧からイメージを選択し、ドロップダウンリストからタグを選択します。
    • External registry タブを選択して、既存のレジストリーからイメージをインポートします。ドロップダウンメニューからレジストリーを選択し、イメージ名で検索します。Satellite は、Tag フィールドに選択したイメージ名で使用できるタグを設定します。詳細は、「外部レジストリーのインポート」 を参照してください。
    Next をクリックして先に進みます。
  4. コンテナー作成の 設定 段階で、次のパラメーターを設定します。
    • コンテナー名を指定します。
    • コンテナー内で実行するコマンドを指定します。
    • コンテナーが起動するとすぐに自動的に実行されるコマンドであるエントリーポイントを指定します。デフォルトのエントリーポイントは /bin/sh -c です。
    • CPU をコンテナーに割り当てます。たとえば、0-2,16 は CPU 0、1、2、および 16 を表します。
    • コンテナーに使用できる CPU 時間の相対的配分を定義します。
    • コンテナーのメモリー制限を指定します。たとえば、512m では、コンテナーのメモリー使用を 512 MB に制限します。
    Next をクリックして先に進みます。
  5. Environment という名前のコンテナー作成の最終段階で、pseudo-tty を割り当てるか、STDIN、STDOUT、および STDERR をコンテナーに割り当てるかどうかを選択します。Add environment variable をクリックして、コンテナーのカスタム環境変数を作成します。Run? チェックボックスを選択して、作成後にコンテナーを自動的に起動します。
  6. Submit をクリックしてコンテナーを作成します。
コンテナーの作成後、Satellite はコンテナーメタデータの概要を表示します。デフォルトでは、コンテナーの作成時に Run? チェックボックスを選択していない限り、新規コンテナーは無効になっています。コンテナーを起動する方法は、手順6.5「コンテナーを開始または停止するには、以下を実行します。」 を参照してください。

例6.1 Satellite での Red Hat Enterprise Linux コンテナーの作成

Red Hat Satellite で Red Hat Enterprise Linux コンテナーを有効にするには、以下の操作を実行します。
  1. 「外部レジストリーのインポート」 の説明に従ってカスタムレジストリーを作成します。registry.access.redhat.com をレジストリー URL として指定します。
  2. 「コンテナーの作成」 の説明に従って、新しいコンテナーを作成します。Image stage of container creation で、External registry タブに移動し、直前の手順で作成したレジストリーを選択します。検索フィールドを使用して、必要なバージョンの Red Hat Enterprise Linux イメージを検索します。設定 ステージと 環境 ステージに従って、コンテナーを完了します。

6.1.2. コンテナーのモニター

Red Hat Satellite では、コンテナーとコンテナー内で実行されているプロセスのステータスを監視する手段が提供されます。一部のコンテナーは、マネージド とマークできます。つまり、コンテナーは Satellite 環境内で作成およびプロビジョニングされたことを意味します。
以下の手順では、選択した組織をリスト表示し、コンテナーのメタデータをモニターする方法について示します。

手順6.4 コンテナーを調査するには、以下を実行します。

  1. ContainersAll Containers に移動します。
  2. コンテナーページでは、すべての Docker コンピュートリソースに専用のタブがあります。これらの各タブには、使用可能なコンテナーの表と、各コンテナーの選択したパラメーターが含まれます。検査するコンピュートリソースのタブを選択します。
  3. コンテナーのメタデータを表示するには、検査するコンテナーの名前をクリックします。Satellite にはコンテナープロパティーの表が表示されます。
  4. Processes タブでは、コンテナーで現在実行されているプロセスを表示できます。プロセス名をクリックして、プロセスのメタデータを表示します。
  5. コンテナーが実行されている場合、その標準出力を Logs タブに表示できます。コンテナーの作成時に allocate a pseudo-tty チェックボックスを選択した場合は、コンソールはインタラクティブになります。それ以外の場合は、コンテナーの起動時に生成された最初の標準出力が表示されます。

6.1.3. コンテナーの起動、コミット、削除

新規コンテナーはデフォルトで無効になっています。コンテナーを有効にすると、コンピュートリソースでコンテナー化されたアプリケーションのプロセスを開始します。その後、ホストは Web アプリケーションと同じコンテナーと通信できます。以下の手順では、コンテナーを起動および停止する方法を説明します。

手順6.5 コンテナーを開始または停止するには、以下を実行します。

  1. ContainersAll Containers に移動し、利用可能なコンテナーの一覧を表示します。
  2. 起動するコンテナーの横にある Power On をクリックします。コンテナーを起動すると、このボタンは Power Off に変わります。これにより、コンテナーの停止が可能になります。これらのアクションは docker start および docker stop コマンドと同等です。
以下の手順では、コンテナーをコミットしてコンテナーの状態を保存する新規のイメージレイヤーを作成します。

手順6.6 コンテナーをコミットするには、以下を実行します。

  1. ContainersAll Containers に移動し、利用可能なコンテナーの一覧を表示します。
  2. コミットするコンテナーの名前をクリックします。
  3. Commit をクリックします。Satellite は以下を求めるプロンプトを表示します。
    • リポジトリー名を指定します。これは、名前を 1 つでも(例: user/my-rhel-image )、ユーザー名と組み合わせることもできます。
    • タグをイメージに割り当てます。
    • 問い合わせ先情報を指定します。
    • イメージ情報のコメントを入力します。
  4. 送信 をクリックします。
注記
コンテナーは元のイメージのリポジトリーにコミットされます。たとえば、コンテナーが Docker Hub からプルされたイメージに基づいている場合、コミットされた変更は Docker Hub にプッシュされます。

手順6.7 コンテナーを削除するには、以下を実行します。

  1. ContainersAll Containers に移動し、利用可能なコンテナーの一覧を表示します。
  2. 削除するコンテナーの名前をクリックします。
  3. Delete をクリックします。
  4. 警告ボックスで、OK をクリックしてコンテナーを削除します。

6.2. リポジトリーの管理

このセクションでは、コンテナーイメージの内部リポジトリーを作成する方法を説明します。「コンテナーの作成」 の説明にあるように、内部リポジトリーを使用してコンテナーを作成することができます。

6.2.1. リポジトリーの作成

リポジトリーでは、Red Hat コンテンツ配信ネットワークまたはその他のソースからコンテナーコンテンツを同期する方法が提供されます。

手順6.8 Docker リポジトリーを作成するには、以下を実行します。

  1. コンテンツ製品 に移動します。New Product をクリックし、製品名を指定して Save をクリックします。
  2. 前の手順で作成した製品を選択し、Repositories タブに移動します。Create Repository をクリックします。
  3. リポジトリー名を指定し、Type ドロップダウンメニューから docker を選択します。これにより、このレジストリーで同期するコンテンツソースの URL を指定する追加のフィールドロックが解除されます。Upstream Repository Name フィールドで、コンテンツソースから取得するリポジトリーを指定します。
    注記
    以前のバージョンの Red Hat Satellite では、ローカルに保存されたコンテナーイメージをリポジトリーにアップロードすることができました。Red Hat Satellite 6.2 では、これはできなくなりました。
  4. Save をクリックして、リポジトリーを作成します。まず、URL およびリポジトリー名が検証され、リポジトリーが作成されます。

6.3. 外部レジストリーのインポート

以下の手順では、外部レジストリーを Satellite Server にインポートする方法を示します。

手順6.9 外部レジストリーをインポートするには、以下を実行します。

  1. ContainersRegistries に移動します。New Registry をクリックします。
  2. Registry タブで、レジストリーの名前と URL を指定します。これらの設定は必須です。オプションで、レジストリーの簡単な説明を入力します。レジストリーへのアクセスに必要な場合は、ユーザー名とパスワードを指定します。
  3. Locations タブで、新規レジストリーが利用できる場所を選択します。
  4. 組織 タブで、新規レジストリーを利用可能にする組織を選択します。
  5. Submit をクリックしてレジストリーを作成します。

6.4. イメージのコンピュートリソースへのインポート

イメージのインポートは、コンテナーの作成時に必要な手順です。また、以下の手順で説明するように、コンテナーを作成する前にイメージをコンピュートリソースにインポートすることもできます。

手順6.10 イメージをコンピュートリソースにインポートするには、以下を実行します。

  1. インフラストラクチャーコンピュートリソース に 移動 して、コンピュートリソースの一覧を表示します。
  2. 編集する docker コンピュートリソースを選択します。
  3. New image をクリックします。
  4. イメージ名、オペレーティングシステム、アーキテクチャー、ユーザー認証情報、および親イメージを含むイメージの詳細を指定します。User data を選択して、このイメージのユーザー入力を有効にします。
  5. 送信 をクリックします。

6.5. コンテナータグの使用

タグは、コンテナー化されたアプリケーションの複数のバージョンを操作する場合に、特にイメージを整理するのに役立ちます。以下の手順では、タグを使用してイメージを検索する方法を説明します。

手順6.11 レジストリーをタグ別に検索するには、以下を実行します。

  1. コンテンツDocker タグ に移動します。
  2. 検索フィールドを使用して、タグをイメージ名、タグ、またはリポジトリー名で絞り込みます。入力時に自動サジェスト機能が利用できます。たとえば、以下のクエリーは、test_repo という名前のリポジトリーからイメージに適用されるタグを検索します。
    repository = test_repo
    Copy to Clipboard Toggle word wrap
  3. 表示するタグの名前をクリックします。Satellite はこのタグを使用するイメージの一覧を表示します。
  4. イメージを選択して、その環境およびコンテンツビューのバージョンを表示します。Published At フィールドは、コマンドラインからイメージをプルするために使用できる URL を表示します。
代替比較演算子の一覧は、『Server Administration Guide』 の Supported Operators for Granular Search を参照してください。デフォルトでは、検索フィールドは入力文字列をタグ名として認識します。たとえば、centos の全タグを検索するには、centos を入力します。

第7章 アクティベーションキーの設定

アクティベーションキーは、コンテンツホストの選択されたプロパティーを定義します。コンテンツホストの登録時にアクティベーションキーを使用して、プロセスにかかる時間を短縮するだけでなく、プロセスの簡潔性や一貫性を向上します。アクティベーションでは、以下を指定できます。
  • 関連付けられるサブスクリプションおよびサブスクリプションのアタッチ動作。
  • 利用可能な製品およびリポジトリー。
  • ライフサイクル環境およびコンテンツビュー。
  • ホストコレクションのメンバーシップ。
十分なサブスクリプションが含まれている限り、同じアクティベーションキーを複数のコンテンツホストに適用できます。ただし、アクティベーションキーはコンテンツホストの初期設定のみを行います。組織に登録すると、所有する他のコンテンツをコンテンツホストに手動でアタッチできます。
コンテンツホストは、複数のアクティベーションキーを関連付けることで、組み合わせてホストを設定できます。設定の競合が発生した場合には、最後に指定したアクティベーションキーが優先されます。
アクティベーションキーは、ホストが登録されている場合にのみ使用できます。アクティベーションキーに変更が加えられた場合には、それ以降、改訂されたアクティベーションキーで登録されるホストにだけ変更が適用されます。これらの変更は、既存のホストには加えられません。

7.1. アクティベーションキーの作成

このセクションでは、アクティベーションキーを作成する方法について説明します。

手順7.1 アクティベーションキーを作成するには、以下を実行します。

  1. ContentActivation keys
  2. New Activation Key をクリックします。次の操作を実行します。
    1. アクティベーションキー名を指定します。この設定は必須です。
    2. オプションで、アクティベーションキーに関連付けることのできるホストの数を制限する場合は、Unlimited Hosts のチェックボックスの選択を解除します。Limit フィールドに数字を指定します。
    3. 必要に応じて、Description フィールドに適切な説明を入力します。このキーを適用する 環境コンテンツビュー を選択することもできます。ホスト登録の場合は、Satellite Tools リポジトリーが有効になっているコンテンツビューを選択します。
  3. Save をクリックして、アクティベーションキーを作成します。

7.2. アクティベーションキーのサブスクリプションプロパティーの定義

アクティベーションキーを使用して、登録時にコンテンツホストをサブスクライブする方法を定義できます。アクティベーションキーで定義されるサブスクリプションの動作は、次の 2 つの要因によって異なります。
  1. サブスクリプションがアクティべーションキーに関連付けられているか ?
  2. 自動アタッチオプションは有効になっているか ?
上記の要因に応じて、アクティベーションキーを使用してサブスクライブするシナリオを 3 つ想定できます。
  • サブスクリプションが指定されていないアクティベーションキー。サブスクリプションの指定なしで、自動アタッチが有効な場合に、アクティベーションキーを使用するホストは、Satellite Server が提供するものから最適なサブスクリプションを検索します。これは、subscription-manager --auto-attach コマンドを実行することです。
  • 自動アタッチ用にカスタムサブスクリプションプールを指定するアクティベーションキー。サブスクリプションが指定されていて、自動アタッチが有効な場合に、アクティベーションキーを使用するホストは、アクティベーションキーで指定されたリストから最適なサブスクリプションを選択します。
  • サブスクリプションセットが指定されたアクティベーションキー。サブスクリプションが指定されていて、自動アタッチが無効な場合、アクティべーションキーを使用するホストは、アクティベーションキーに指定されたすべてのサブスクリプションに関連付けられます。
注記
カスタム製品 (通常は Red Hat が提供しないコンテンツを含む製品) がアクティべーションキーに割り当てられている場合、この製品は、自動アタッチの設定の有無にかかわらず、登録されたコンテンツホストに対して常に有効にされます。

7.2.1. サブスクリプションの追加および削除

このセクションでは、サブスクリプションをアクティべーションキーに追加し、それらを削除する方法について説明します。

手順7.2 サブスクリプションをアクティベーションキーに追加するには、以下を実行します。

  1. ContentActivation keys
  2. 編集するアクティべーションキーの名前をクリックします。
  3. Subscriptions タブで、Add サブタブを選択します。
  4. 利用可能なサブスクリプションのリストから、追加するサブスクリプションを選択します。
  5. Add Selected をクリックします。

手順7.3 アクティベーションキーからサブスクリプションを削除するには、以下を実行します。

  1. ContentActivation keys
  2. アクティベーションキーの一覧が表示されます。サブスクリプションを削除するアクティベーションキーをクリックします。
  3. Subscriptions タブをクリックします。
  4. List/Remove サブタブで、アタッチされているサブスクリプションのリストが表示されます。削除するサブスクリプションを選択します。
  5. Remove Selected をクリックします。

7.2.2. 自動アタッチの有効化

アクティベーションキーで自動アタッチを有効にし、キーに割り当てたサブスクリプションがある場合は、サブスクリプション管理サービスが、現在インストールされている製品、アーキテクチャー、およびサービスレベルなどの設定に基づいて、最適な関連サブスクリプションを選択してアタッチします。
自動アタッチを有効にして、キーに関連付けられたサブスクリプションを持たないことができます。このタイプのキーは、仮想マシンが RHEL サブスクリプションを使用せず、ハイパーバイザーから RHEL Virtual Data Center (VDC)サブスクリプションを継承する場合に、仮想マシンを登録するために一般的に使用されます。
自動アタッチはデフォルトで有効になっています。アクティベーションキーに関連付けられているすべてのサブスクリプションを強制的にアタッチする場合は、このオプションを無効にします。

手順7.4 アクティベーションキーで自動アタッチを有効または無効にするには、以下を実行します。

  1. ContentActivation keys
  2. 編集するアクティべーションキーの名前をクリックします。
  3. Subscriptions タブをクリックします。
  4. Auto-Attach の隣にある編集アイコンをクリックします。
  5. チェックボックスを選択または選択解除して、自動アタッチを有効または無効にします。
  6. Save をクリックします。
注記
自動アタッチアクティベーションキーを使用して仮想コンテンツホストを Satellite Server に登録するには、まず virt-who ユーティリティーを使用して、そのホストを仮想データセンター(VDC)サブスクリプションのエンタイトルメントのあるハイパーバイザーにマッピングします。この前提条件を満たさないと、仮想ホストは 24 時間一時仮想サブスクリプションでのみ登録されます。詳細は、Red Hat Satellite 仮想インスタンスガイド を参照してください

7.2.3. サービスレベルの設定

アクティベーションキーで作成した新規ホストのデフォルトのサービスレベルを定義するようにアクティベーションキーを設定できます。デフォルトのサービスレベルを設定すると、ホストにアタッチするのに適したサブスクリプションのみが選択されます。たとえば、アクティベーションキーのデフォルトのサービスレベルが Premium に設定されている場合には、Premium サービスレべルのサブスクリプションのみが登録時にホストにアタッチされます。

手順7.5 アクティベーションキーにサービスレベルを設定するには、以下を実行します。

  1. ContentActivation keys
  2. 編集するアクティべーションキーの名前をクリックします。
  3. Details タブをクリックします。
  4. Service Level の横にある編集アイコンをクリックします。
  5. ドロップダウンリストから必要なサービスレベルを選択します。ドロップダウンリストには、アクティベーションキーで利用できるサービスレベルだけが含まれます。
  6. Save をクリックします。

7.3. アクティベーションキーの編集

このセクションでは、ホストコレクション、製品コンテンツ、および製品ライフサイクル環境など、アクティべーションキーのプロパティーを編集する方法について説明します。

7.3.1. ホストコレクションの追加および削除

以下の手順は、ホストコレクションをアクティベーションキーに追加する方法を示しています。ホストコレクションはアクティベーションキーに関連付けることができるため、アクティベーションキーを使用するホストが、Satellite Server への登録時に関連付けられたホストコレクションに自動的に追加されます。

手順7.6 ホストコレクションをアクティベーションキーに追加するには、以下を実行します。

  1. ContentActivation keys
  2. ホストコレクションの追加先となるアクティベーションキーをクリックします。
  3. Host Collections タブで、Add サブタブをクリックし、利用可能なホストコレクションの一覧を表示します。
  4. 追加するホストコレクションを選択し、Add Selected をクリックします。

手順7.7 アクティベーションキーからホストコレクションを削除するには、以下を実行します。

  1. ContentActivation keys
  2. アクティベーションキーの一覧が表示されます。ホストコレクションを削除するアクティベーションキーをクリックします。
  3. Host Collections タブをクリックします。
  4. リスト /削除 サブタブで、アクティベーションキーにアタッチされたホストコレクションのリストが表示されます。削除するホストコレクションのチェックボックスを選択します。
  5. Remove Selected をクリックして、アクティベーションキーからホストコレクションを削除します。

7.3.2. 製品コンテンツの編集

アクティベーションキーで利用可能な製品の数は、関連するサブスクリプションによって決まります。製品コンテンツ タブで、製品 の有効にするリポジトリーを変更できます。

手順7.8 アクティベーションキーで製品コンテンツを編集するには、以下を実行します。

  1. ContentActivation keys
  2. 編集するアクティべーションキーの名前をクリックします。
  3. Product Content タブをクリックして、サブスクリプションを通じてアクティベーションキーに関連付けられている製品とリポジトリーを表示します。
  4. 編集するリポジトリーの横にある編集アイコンをクリックします。
  5. ドロップダウンメニューから、リポジトリーを有効または無効にするかどうかを選択します。Save をクリックして変更を適用します。

7.3.3. ライフサイクル環境およびコンテンツビューの設定

アクティベーションキーの作成時に、そのライフサイクル環境およびコンテンツビューを設定できます。以下の手順に従って、後で設定を変更することもできます。

手順7.9 アクティべーションキーのライフサイクル環境およびコンテンツビューを設定するには、以下を実行します。

  1. ContentActivation keys
  2. 編集するアクティべーションキーの名前をクリックします。
  3. アクティベーションキーに関連付ける環境の横にあるチェックボックスをクリックします。ドロップダウンメニューからコンテンツビューを選択します。
  4. Save をクリックします。

7.4. アクティベーションキーの削除

このセクションでは、アクティベーションキーを削除する方法について説明します。

手順7.10 アクティべーションキーを削除するには、以下を実行します。

  1. ContentActivation keys
  2. 削除するアクティベーションキーの名前をクリックします。
  3. Activation Key の詳細パネルの右上にある Remove をクリックします。
  4. 警告ボックスで 削除 を クリックして、キーの削除を確定します。

7.5. アクティべーションキーを使用したホストの自動登録

以下の手順では、アクティベーションキーを使用してホストを自動的に登録する方法を説明します。アクティベーションキーを作成したら、Satellite Server でのホストの登録時に subscription-manager ユーティリティーを使用して適用できます。subscription-manager ユーティリティーがインストールされているバージョンは 1.10 以上である必要があることに注意してください。「ホスト登録の設定」 の説明に従ってホストを準備し、手順7.11「アクティベーションキーを使ってホストを自動登録するには、以下を実行します。」に記載の手順に従います。

手順7.11 アクティベーションキーを使ってホストを自動登録するには、以下を実行します。

  1. 古くなった登録データをシステムからクリアします。
    # subscription-manager clean
    Copy to Clipboard Toggle word wrap
  2. Satellite Server からホストの CA 証明書のコピーをダウンロードし、これをインストールします。
    # rpm -Uvh http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
    Copy to Clipboard Toggle word wrap
  3. システムを Satellite Server 上の必要な組織に登録します。アクティベーションキーを使用して、システムを登録します。プロンプトが表示されたら、ユーザー認証の詳細を入力します。
    # subscription-manager register --org "Default_Organization" --activationkey "Test_Key"
    Copy to Clipboard Toggle word wrap
  4. システムが登録されていると、リポジトリーコンテンツにアクセスできるようになりますが、管理者は Katello エージェントがクライアントシステムにインストールされているまでパッケージおよびエラータの管理を行うことができません。これを行うには、以下を実行します。
    # yum install katello-agent
    Copy to Clipboard Toggle word wrap

ホストを登録するための複数アクティべーションキーの組み合わせ

コンテンツホストの登録時に複数のアクティベーションキーを使用できます。これにより、特定のサブスクリプションセット用にアクティベーションキーを作成し、コンテンツホストの要件に従って組み合わせることができます。たとえば、以下のコマンドは VDC と OpenShift の両方のサブスクリプションを持つコンテンツホストを ACME 組織に登録します。
# subscription-manager register --org "ACME" --activationkey "ak-VDC,ak-OpenShift"
Copy to Clipboard Toggle word wrap
アクティベーションキーの設定で競合が生じた場合は、右端のキーが優先されます。
  • 競合する設定:サービスレベル、リリースバージョン、環境、コンテンツビュー、および 製品コンテンツ。
  • 競合しない設定と、ホストはそれらの統合を取得します:サブスクリプション および ホストコレクション。
  • キー自体の動作に影響を与えるが、ホストの設定には影響を与えない設定:コンテンツホストの制限 および 自動アタッチ。

第8章 GPG キーの設定

GPG キーを使用すると、既存の GPG キーを Red Hat Satellite Server™ 製品およびリポジトリーに追加して、リポジトリーとペアにすることができます。

8.1. GPG キーの作成

このセクションでは、GPG キーを Red Hat Satellite に追加する方法について説明します。

手順8.1 GPG キーを Satellite に追加するには、以下を実行します。

  1. コンテンツGPG キー をクリックして、新規 GPG キー をクリックします
  2. 名前 フィールド 、GPG キーの名前を入力します。
  3. GPG キーファイルをアップロードするか、または GPG キーのコンテンツをテキストボックスに貼り付けます。
  4. Save をクリックして GPG キーを Satellite に追加します。

8.2. GPG キーの削除

このセクションでは、Red Hat Satellite から GPG を削除する方法について説明します。

手順8.2 GPG キーを削除するには、以下を実行します。

  1. コンテンツGPG キー をクリックします。
  2. 削除する GPG キーをクリックしてから、Remove GPG Key をクリックします。
  3. 確認ボックスで Remove をクリックして、選択したキーの削除を確定します。

第9章 プロビジョニング環境の設定

プロビジョニング とは、ベアメタルの物理または仮想コンピュートリソースから開始し、完全に設定されたすぐに使用できるオペレーティングシステムで終わるプロセスを指します。Red Hat Satellite には、多数のホストに対して粒度の細かいプロビジョニングを定義し、自動化する機能があります。本セクションでは、プロビジョニングに必要なコンポーネントを設定する方法を説明します。プロビジョニングプロセス自体の詳細は、Red Hat Satellite プロビジョニングガイド を参照してください

9.1. ホストグループの作成

ホストグループは、ホストがグループに配置される際に継承するデフォルト値のセットを定義します。ホストは 1 つのホストグループにしか属することができませんが、ホストグループは階層に入れ子にすることができます。組織内の全ホストを表すベースまたは親ホストグループを作成してから、その親の下にネストされたホストグループまたは子ホストグループを作成して、特定の設定を指定できます。本セクションでは、ホストグループを作成する方法を説明します。

手順9.1 ホストグループを Satellite に追加するには、以下を実行します。

  1. ホストグループの 設定 クリックしてから、新規ホストグループ をクリックします。
  2. ホストグループに必要な詳細を入力し、送信 を クリックします。

ホストグループの属性

以下の表は、Satellite ホストグループに適用される属性について説明しています。

Expand
表9.1 ホストグループ属性の表
サブメニュー
オプション
説明
Host Group (ホストグループ)
Parent
新規ホストグループの親ホストグループです。
名前
ホストグループの名前です。
Life Cycle Environment (ライフサイクル環境)
このホストグループを含む環境です。
Puppet CA
Puppet CA サーバーに使用する Red Hat Satellite Capsule Server。
Puppet Master (Puppet マスター)
Puppet マスターとして使用する Red Hat Satellite Capsule Server。
Puppet クラス
組み込み済みのクラス
ホストグループに組み込まれている Puppet クラスです。
利用可能なクラス
ホストグループと共に使用できる Puppet クラスです。
ネットワーク
Domain
ホストグループ内のホストのドメインです。
サブネット
ホストグループ内のホストのサブネットです。
オペレーティングシステム
アーキテクチャー
ホストグループ内のシステムのデフォルトアーキテクチャーです。
オペレーティングシステム
ホストグループ内のシステムのデフォルトオペレーティングシステムです。
メディア
オペレーティングシステムのインストールメディアのある場所です。
パーティションテーブル
オペレーティングシステムをインストールするためのファイルシステムのパーティションレイアウトです。
Root Password
オペレーティングシステムの root パスワードです。
パラメーター
パラメーターの追加
ホストグループのパラメーターを設定するために名前と値のペアを提供します。
組織
組織
このホストグループを所有する組織です。
アクティベーションキー
コンテンツ環境
@host.params['kt_activation_keys'] としてテンプレートで利用可能なアクティベーションキーを定義します。

9.2. パラメーター

Red Hat Satellite パラメーターは、ホストのプロビジョニング時に使用するキーと値のペアを定義します。これらは、Puppet のデフォルトのスコープパラメーターの概念に似ています。Puppet でホストを設定する際にパラメーターを定義することができます。
パラメーターのタイプ
Red Hat Satellite には 2 種類のパラメーターがあります。
単純パラメーター
キーと値のペアとの関係を定義する文字列パラメーターです。ユーザー設定で上書きすることはできませんが、Satellite のパラメーター階層に従って上書きされます。グローバル、組織レベル、ロケーションレベル、ドメインレベル、オペレーティングシステムレベル、ホストグループ、およびホストのパラメーターの単純なパラメーターは、Red Hat Satellite の単純なパラメーターです。
スマートパラメーター
キーの値を定義するだけではなく、特定のオブジェクトタイプの条件付き引数、検証および上書きを可能にする複雑なパラメーターです。スマートパラメーターにより、Puppet クラスで外部データを取得できるようになります。これらは、Puppet 用語で パラメーター化されたクラスと呼ばれる Puppet クラス で使用されます。これらのパラメーターの階層は Web UI で設定できます。
以下のパラメーター階層は単純なパラメーターに対して適用されます。
グローバルパラメーター
Satellite のすべてのホストに適用されるデフォルトのパラメーター。グローバルパラメーター+設定し ます。
組織レベルのパラメーター
特定の組織の全ホストに影響するパラメーター。組織レベルのパラメーターは、グローバルパラメーターを上書きします。組織編集パラメーター+管理 で設定されます。
ロケーションレベルのパラメーター
指定の場所内の全ホストに影響するパラメーター。ロケーションレベルのパラメーターは、組織レベルのパラメーターおよびグローバルパラメーターを上書きします。管理ロケーション編集パラメーターで設定されます。
ドメインパラメーター
指定のドメインのすべてのホストに影響するパラメーター。ドメインパラメーターは、ロケーションレベル以上のパラメーターを上書きします。インフラストラクチャードメイン[choose_a_domain]パラメーターで設定されます
オペレーティングシステムレベルのパラメーター
指定したオペレーティングシステムを持つすべてのホストに影響するパラメーター。オペレーティングシステムレベルのパラメーターは、ドメイン以上のパラメーターを上書きします。ホストシステム[choose_an_operating_system]パラメーターで設定されます
ホストグループパラメーター
指定のホストグループ内の全ホストに影響するパラメーター。ホストグループのパラメーターは、オペレーティングシステムレベル以上のパラメーターを上書きします。ConfigureHost Groups[choose_a_host_group]パラメーターで設定されます
ホストパラメーター
特定のホストに影響するパラメーター。以前に継承したパラメーターはすべてパラメーターサブタブに表示され、上書きすることができます。HostsAll hostsEditParameters で設定されます。
パラメーターと 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 では、パラメーター化されたクラスサポートがデフォルトで有効になっています。確実に実行する必要がある場合は、AdministerSettings に移動し、Puppet タブを選択し、Parametrized_Classes_in_ENCTrue に設定されていることを確認します。

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

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

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

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

9.2.2. スマート変数の設定

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

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

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

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

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

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

  1. Satellite Web UI で、コンテキストメニューの Any Organization および Any Location を選択します。
  2. ConfigurePuppet Classes をクリックします。
  3. Import from Host Name をクリックして、Puppet マスターからパラメーター化されたクラスをインポートします。
  4. Puppet Classes ページが新規クラスのリストと共に表示されます。

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

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

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

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

9.3. プロビジョニング設定の設定

このセクションでは、プロビジョニング環境の要素を作成し、それらを設定する方法を示します。

9.3.1. ドメイン

Satellite には、Red Hat Satellite Capsule Server DNS でドメイン名を割り当てる機能があります。これにより、ユーザーは特定のドメイン内のホストをグループ化し、名前を付ける手段が提供されます。

手順9.6 ドメインを作成するには、以下を実行します。

  1. InfrastructureDomains をクリックします。
  2. 新規ドメイン を クリックし ます。Domain タブで、以下の設定を指定します。
    1. Domain の Name を指定します。これは、必要な DNS ドメイン名です。
    2. Domain の Description を入力します。
    3. DNS で有効にされた Capsule Server を選択します。
  3. Parameters タブで、ドメインパラメーターを指定します。
  4. Locations タブで、ドメインのロケーションを選択します。
  5. 組織 タブで、ドメインの組織を選択します。
    重要
    ロケーションと組織はデバッグ作業に役立つため、これらが設定されていることを確認します。
  6. 送信 をクリックします。

9.3.2. サブネット

Satellite には、システムのグループのネットワークを作成する機能があります。サブネットは、標準 IP アドレス設定を使用してネットワークを定義し、Red Hat Satellite Capsule Server の DHCP 機能を使用して、サブネット内のシステムに IP アドレスを割り当てます。
9.3.2.1. サブネットの作成
以下の手順は、サブネットを作成する方法を示しています。

手順9.7 サブネットを作成するには、以下を実行します。

  1. インフラストラクチャーサブネット を クリック ます。
  2. 新規サブネット を クリックし ます。サブネット タブで、以下の設定を指定します。
    1. サブネットの NameNetwork address (IP アドレス)、および Network mask を指定します。これらの設定は必須です。
    2. 必要に応じて、ゲート ウェイアドレスプライマリー DNS サーバーセカンダリー DNS サーバー、および VLAN ID を指定します。ゲートウェイアドレスおよび DNS サーバーの設定は、オプションで、IPAM および Boot モードの DHCP (デフォルト)に設定されている場合のみであることに注意してください。これらのデフォルトモードを変更する場合は、ゲートウェイと DNS も指定する必要があります。
      IPAM モード(DHCP、Internal DB、または None)を選択し、IP 範囲の 開始 フィールドと 終了 フィールドで IP 割り当ての範囲 を定義することもできます。
    3. サブネットのデフォルトの ブートモード (DHCP または Static)を選択します。
  3. Domains タブで、サブネットの該当するドメインを選択します。
  4. Capsule タブ DHCP プロキシー、TFTP プロキシー、DNS プロキシー、および Discovery Proxy サービスのホストに使用する Capsule Server を選択します。
  5. Locations タブで、サブネットのロケーションを選択します。
  6. 組織 タブで、サブネットの組織を選択します。
    重要
    ロケーションと組織はデバッグ作業に役立つため、これらが設定されていることを確認します。
  7. 送信 をクリックします。

9.3.3. アーキテクチャー

Satellite 内のアーキテクチャーはホストおよびオペレーティングシステムの論理グループを表します。アーキテクチャーは、ホストが Puppet に接続する際に Satellite によって自動的に作成されます。ただし、デフォルトのインストールには存在しないため、作成が必要です。

手順9.8 アーキテクチャーを作成するには、以下を実行します。

  1. HostsArchitectures をクリックしてから、New Architecture をクリックします。
  2. アーキテクチャーの 名前 を指定します。
  3. このアーキテクチャーが 含まれるオペレーティングシステム を選択します。利用できる オペレーティングシステムホスト オペレーティングシステム の下に割り当てることができます。
  4. 送信 をクリックします。

9.3.4. コンピュートリソース

コンピュートリソースは、仮想化およびクラウドプロバイダーからのハードウェア抽象化です。Satellite は、コンピュートリソースを使用して仮想マシンとコンテナーをプロビジョニングします。サポート対象のプライベートプロバイダーには、Red Hat Enterprise Virtualization、oVirt、OpenStack、VMware、Libvirt、および Docker が含まれます。サポートされるパブリッククラウドプロバイダーには、Amazon EC2、Google Compute Engine、Rackspace が含まれます。

手順9.9 コンピュートリソースを追加するには、以下を実行します。

  1. インフラストラクチャーコンピュートリソースに移動 します。
  2. New Compute Resource をクリックします。Compute Resource タブで、以下の設定を指定します。
    1. コンピュートリソースの Name および Provider タイプを指定します。必要に応じて、Description を挿入します。
    2. 選択したプロバイダータイプに応じて、次のいくつかのフィールドで認証とデータセンターの詳細を要求します。各プロバイダータイプの詳細は、以下の表を参照してください。
      Expand
      表9.2 プロバイダーの設定
      説明
      RHEV
      Red Hat Enterprise Virtualization 環境に適しています。コンピュートリソースを抽象化するために、Manager API の URL 有効な ユーザー名と パスワード、およびシステム上の Datacenter が必要です。データセンターのロード をクリックして、ドロップダウンメニューに入力します。オプションで、Quota ID を指定し、X509 認証局 フィールドに 1 つ以上の認証局 を指定できます。
      Libvirt
      Libvirt ベースの環境に適しています。仮想マシンの URL が必要です。Display type を選択します。Test Connection をクリックして、仮想マシンが利用可能かどうかをテストします。Console passwords を選択して、ディスプレイ接続にランダムに生成されたパスワードを設定します。
      VMware
      VMware ベースの環境に適しています。VCenter/Server のホスト名、有効な VMware ユーザー名パスワード、およびコンピュートリソースを抽象化するための Datacenter が必要です。データセンターのロード をクリックして、ドロップダウンメニューに入力します。証明書 Fingerprint を指定し、Console password を選択して、 表示接続でランダムに生成されたパスワードを設定できます。
      RHEL OpenStack Platform
      OpenStack ベースの環境に適しています。コンピュートリソースを抽象化するには、OpenStack サーバーの URL、有効な OpenStack ユーザー名パスワード、および Tenant が必要です。テナントの読み込み をクリックしてドロップダウンメニューに入力します。
      Rackspace
      Rackspace のパブリッククラウドアカウントに適しています。コンピュートリソースを抽象化するには、Rackspace API の URL、有効な Rackspace Username および API Key、および リージョン が必要です。Test Connection をクリックして、選択したリージョンへの接続が有効であることを確認します。
      EC2
      Amazon EC2 パブリッククラウドアカウントに適しています。有効な Amazon EC2 アカウントから 利用可能な アクセス キーとシークレットキー が必要です。リソースの抽象化のデータセンターとして機能する リージョン が必要です。リージョンの読み込み をクリックして、選択したドロップダウンメニューを入力します。
      Google
      Google Compute Engine のパブリッククラウドアカウントに適しています。Google プロジェクト ID (有効な クライアント電子メール、および p12 ファイルへの 証明書パス )が必要です。コンピュートリソースを抽象化する ゾーン を指定することもできます。ゾーンの読み込み をクリックしてドロップダウンメニューに入力します。
      Docker
      コンテナーレジストリーに適しています。内部または外部のコンピュートリソースの URL が必要です。必要に応じて、UsernamePassword、および contact Email を指定します。Test Connection をクリックして、接続が利用可能かどうかをテストします。
  3. ロケーション タブで、選択し たアイテム リストに追加するロケーションを選択します。
  4. 組織 タブで、選択し たアイテム 一覧に追加する組織を選択します。
    重要
    ロケーションと組織はデバッグ作業に役立つため、これらが設定されていることを確認します。
  5. 送信 をクリックします。

9.3.5. コンピュートリソースとしての Libvirt の設定

Libvirt ハイパーバイザーが使用されるシステムで、以下のパッケージがインストールされていることを確認します。
# yum install qemu-kvm libvirt virt-manager
Copy to Clipboard Toggle word wrap
ハイパーバイザーマシンおよび Satellite Server が実行されているベースシステムで、ハイパーバイザーホストの FQDN が正常に解決されていることを確認します。

手順9.10 Libvirt コンピュートリースを追加するには、以下を実行します。

  1. インフラストラクチャーコンピュートリソース に 移動ます
  2. New Compute Resource をクリックします。Compute Resource タブで、以下の設定を指定します。
    1. Name を指定し、Provider ドロップダウンメニューから、コンピュートリソースのタイプとして Libvirt を選択します。必要に応じて、Description を挿入します。
    2. URL フィールドに、次のように文字列を入力します。
      qemu:///system
      Copy to Clipboard Toggle word wrap
    3. Display Type ドロップダウンメニューから、VNC を選択します。
    4. このコンピューティングリソースが新しい Libvirt ゲストにのみ使用する場合は、オプションとして Console passwords チェックボックスを選択します。このオプションは、以前に設定した Libvirt ゲストと組み合わせて使用することはできません。
    5. Test Connection をクリックします。接続に成功すると、ボタンが緑色になります。
    6. 送信 をクリックして設定を保存します。
    7. Virtual Machines タブを選択します。以前に設定された Libvirt ゲストが表示されます。

手順9.11 Libvirt への SSH アクセスを設定するには、以下を実行します。

他に指定がない限り、Red Hat Satellite が実行されているシステムで以下の手順を実行します。
  1. foreman ユーザーの SSH ファイルのパーミッションと SELinux コンテキストが正しいことを確認します。
    # ls -Zd /usr/share/foreman/.ssh
    drwx------. foreman foreman system_u:object_r:ssh_home_t:s0  /usr/share/foreman/.ssh
    Copy to Clipboard Toggle word wrap
  2. foreman ユーザーの SSH 鍵を作成します。
    # su - foreman -s /bin/bash
    -bash-4.2$ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/usr/share/foreman/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /usr/share/foreman/.ssh/id_rsa.
    Your public key has been saved in /usr/share/foreman/.ssh/id_rsa.pub.
    The key fingerprint is:
    07:47:a9:23:d2:fe:2f:07:fb:55:75:46:3e:8e:6e:69 foreman@satellite.example.com
    The key's randomart image is:
    +--[ RSA 2048]----+
    |          ..    .|
    |         ..    o |
    |     .  ...    .=|
    |    . o oo    ooo|
    |     o .S..  ... |
    |      . ..  ...  |
    |       . o  .E   |
    |        + ..o    |
    |         =o      |
    +-----------------+
    Copy to Clipboard Toggle word wrap
  3. SSH 公開鍵をリモートハイパーバイザーシステムにコピーします。たとえば、Libvirt ホストが kvm.example.com の場合は、以下のコマンドを実行します。
    -bash-4.2$ ssh-copy-id root@kvm.example.com
    The authenticity of host 'kvm.example.com (192.168.1.2)' can't be established.
    ECDSA key fingerprint is 78:79:41:d0:b8:40:d5:4a:6d:7f:22:03:bd:cd:a0:dd.
    Are you sure you want to continue connecting (yes/no)? yes
    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
    foreman@192.168.1.2's password:
    
    Number of key(s) added: 1
    
    Now try logging into the machine, with:   "ssh 'root@kvm.example.com'"
    and check to make sure that only the key(s) you wanted were added.
    Copy to Clipboard Toggle word wrap
  4. リモートシステムに SSH 接続して、パスワードプロンプトが表示されていないことを確認します。
    -bash-4.2$ ssh root@kvm.example.com
    Copy to Clipboard Toggle word wrap
    パスワードの入力を求められること はありません。公開鍵は、リモートシステムの .ssh/authorized_keys ファイルにあります。正常にログインしてキーを確認した後、終了します。
    -bash-4.2$ exit
    Copy to Clipboard Toggle word wrap
  5. Web UI で InfrastructureCompute resourcesNew Compute をクリックします。
  6. 名前 フィールドに 適切な名前を入力します。
  7. プロバイダー ドロップダウン メニューから Libvirt を選択します。
  8. URL フィールドに、次の形式で文字列を入力します。
    qemu+ssh://root@kvm.example.com/system
    Copy to Clipboard Toggle word wrap
    Where kvm.example.com は、Libvirt ホストの FQDN です。
  9. Display Type ドロップダウンメニューから、VNC を選択します。
  10. このコンピューティングリソースが新しい Libvirt ゲストにのみ使用する場合は、オプションとして Console passwords チェックボックスを選択します。このオプションは、以前に設定した Libvirt ゲストと組み合わせて使用することはできません。
  11. Test Connection をクリックします。接続に成功すると、ボタンが緑色になります。
  12. 送信 をクリックして設定を保存します。
  13. Virtual Machines タブを選択します。以前に設定された Libvirt ゲストが表示されます。

手順9.12 noVNC コンソールを設定するには、以下を実行します。

前提条件:
  • SSH キーは、Satellite Server のベースシステムで foreman ユーザー用に設定する必要があります(前述のとおり)。
  • 既存の Libvirt ゲストは、表示タイプとして VNC サーバーを使用するように、表示タイプとしてポート設定を設定し、VNC パスワードを選択しないように設定する必要があります。
  1. ハイパーバイザーホストシステムで、VNC サービスがポート 5900 から 5930 まで許可されるように ファイアウォールを設定します。
    • Red Hat Enterprise Linux 6 の場合:
      # iptables -A INPUT -p tcp --dport 5900:5930 -j ACCEPT
      # service iptables save
      Copy to Clipboard Toggle word wrap
    • Red Hat Enterprise Linux 7 の場合
      # firewall-cmd --add-port=5900-5930/tcp
      # firewall-cmd --add-port=5900-5930/tcp --permanent
      Copy to Clipboard Toggle word wrap
  2. Web UI に使用されるブラウザーで、以下のように Satellite Server 証明書を信頼します。
    1. Satellite Server のパブリックダウンロードページ(例: https://satellite.example.com/pub/ )に移動し、証明書ファイル katello-server-ca.crt をクリックします。
    2. Web サイトを特定するために証明書を信頼する選択をします。
  3. Web UI に使用するブラウザーで、HTTP 厳密なトランスポートセキュリティー (HSTS)を無効にします。HSTS は RFC 6797 で説明されています。たとえば、Firefox で、ブラウザーアドレスバーに About:Config と入力し、以下のブール値を True に設定します。
    network.websocket.allowInsecureFromHTTPS
    Copy to Clipboard Toggle word wrap
  4. Web UI のブラウザーで FQDN を使用していることを確認します。URL のドメイン名が証明書の CN 値に一致しない場合、noVNC は機能しません。これは FQDN と同じである必要があります。以下のコマンドを使用して CN 値を確認します。
    # openssl x509 -text -noout -in /etc/pki/katello/certs/katello-apache.crt | grep CN
    Issuer: C=US, ST=North Carolina, L=Raleigh, O=Katello, OU=SomeOrgUnit, CN=satellite.example.com
    Subject: C=US, ST=North Carolina, O=Katello, OU=SomeOrgUnit, CN=satellite.example.com
    output truncated
    Copy to Clipboard Toggle word wrap
  5. インフラストラクチャーコンピュートリソースに移動 します。Libvirt リソースの名前を選択します。仮想マシン タブ で、Libvirt ゲストの名前を選択します。マシンの電源がオンになっていることを確認してから、コンソール を選択します。コンソールウィンドウは noVNC ハンドシェイクが完了すると表示されます。

9.3.6. ハードウェアモデル

ハードウェアモデルは、Scalable Processor Architecture (SPARC) ベースのシステムに無人インストールを実行する際に役立ちます。

手順9.13 ハードウェアモデルを作成するには、以下を実行します。

  1. HostsHardware Models をクリックします。
  2. New Model をクリックします。
  3. ハードウェアモデルの Name を指定します。
  4. SPARC ビルドの場合は、CPU ハードウェアモデルVendor クラス を挿入します。他のアーキテクチャーでは、これらのフィールドに値は必要ありません。
  5. 情報 フィールドにハードウェアモデルの詳細を入力します。
  6. 送信 をクリックします。

9.3.7. インストールメディア

Red Hat Satellite は、インストールメディア(ISO イメージ)をキックスタートツリーおよび新規ホストインストールのコンテンツとして使用します。

手順9.14 インストールメディアを追加するには、以下を実行します。

  1. HostsInstallation Media をクリックします。
  2. New Medium をクリックします。[ ] タブで、次の設定を指定します。
    1. インストールメディアの 名前 を入力します。この設定は必須です。
    2. インストールメディア のパスを入力します。オプションは、URL または有効な NFS サーバーのいずれかです。この設定は必須です。
    3. インストールメディアのタイプを定義する オペレーティングシステムファミリー を選択します。
  3. ロケーション タブで、選択し たアイテム リストに追加するロケーションを選択します。
  4. 組織 タブで、選択し たアイテム 一覧に追加する組織を選択します。
    重要
    ロケーションと組織はデバッグ作業に役立つため、これらが設定されていることを確認します。
  5. 送信 をクリックします。

9.3.8. パーティションテーブル

パーティションテーブルは、システムのプロビジョニング時に新規インストール用のパーティションとファイルシステムのレイアウトを定義します。Satellite ユーザーは、ホストのディスクレイアウトをパーティションの明示的なシーケンスとして指定するか、動的ディスクレイアウトスクリプトを使用します。

手順9.15 パーティションテーブルを作成するには、以下を実行します。

  1. HostsPartition Tables をクリックします。
  2. New Partition Table をクリックします。
  3. パーティションテーブルの 名前 を入力してください。
  4. 必要に応じて、Default を選択します。このチェックボックスは、パーティションが新しい組織またはロケーションに自動的に関連付けられるかどうかを定義します。
  5. 必要に応じて、Snippet を選択します。このチェックボックスは、パーティションが他のパーティションテーブルレイアウトで再利用可能なスニペットであるかどうかを定義します。
  6. Operating system family ドロップダウンリストからオペレーティングシステムを選択します。
  7. パーティションテーブルの Layout を指定します。Template editor のテキストフィールドにレイアウトを入力するか、Choose File をクリックしてテンプレートファイルをアップロードできます。
    注記
    レイアウトのフォーマットは、オペレーティングシステムのフォーマットと一致する必要があります。Red Hat Enterprise Linux 7.2 にはキックスタートファイルに一致するレイアウトが必要です。
  8. 監査コメント を使用して、パーティションレイアウトへの変更の概要を追加します。
  9. 送信 をクリックします。
新しいパーティションテーブルは、の説明に従って、オペレーティングシステムと関連付ける必要があります。 「オペレーティングシステム」

9.3.9. Provisioning Templates

テンプレートをプロビジョニングすると、無人インストールを実行するための体系的な手段が提供されます。プロビジョニングテンプレートは、bash スクリプト、キックスタートスクリプト、PXE ベースのインストールなど、複数の方法で実行できます。

手順9.16 プロビジョニングテンプレートの作成:

  1. HostsProvisioning Templates をクリックします。
  2. New Template をクリックします。Provisioning Template タブで、以下の設定を指定します。
    1. テンプレートの Name を指定します。
    2. テンプレート エディター フィールドにテンプレートを挿入します。または、Browse をクリックしてテンプレートをアップロードします。これにより、Template editor フィールドのコンテンツが選択したファイルの内容に置き換えられます。
    3. 必要に応じて、Audit Comment フィールドにコメントを入力します。Satellite は、変更を追跡するためのコメントをテンプレート履歴に追加します。History タブでテンプレートの履歴を表示します。
  3. Type タブで Snippet を選択し、特定のスクリプトやテンプレートタイプとして定義せずにテンプレートコードを保存するか、Type ドロップダウンメニューからタイプを選択します。
  4. 関連付け タブ で、テンプレートに関連付けるホストグループ、環境、およびオペレーティングシステムを選択します。適用 可能なオペレーティングシステム リストからオペレーティングシステムを選択します。Add Combination をクリックして、HostgroupEnvironment を選択し、テンプレートの使用を制限します。タイプスニペットのテンプレートでは関連付けは利用できません。
  5. 関連付け タブ では、既存のテンプレートの履歴を表示できます。新しいテンプレートの作成時に履歴は利用できません。
  6. ロケーション タブで、テンプレートの場所を選択します。
  7. 組織 タブで、テンプレートの組織を選択します。
    重要
    ロケーションと組織はデバッグ作業に役立つため、これらが設定されていることを確認します。
  8. 送信 をクリックします。
プロビジョニングテンプレートの詳細は、『Red Hat Satellite Provisioning Guide』 の Creating Provisioning Templates を参照してください。

9.3.10. プロビジョニング時間を削減するための gPXE の設定

PXE ブートファイルをダウンロードする際にプロビジョニング時間を短縮するために、gPXE は HTTP などの追加プロトコルを使用してダウンロード時間を短縮できます。gPXE を利用するには、以下の手順を実行します。
  • TFTP サーバーに設定されているシステムで、/usr/share/syslinux/gpxelinuxk.0/var/lib/tftpboot にコピーします。
  • /etc/dhcp/dhcpd.confPXE Handoff セクションで、DHCPfilename オプションを pxelinux.0 から gpxelinuxk.0 に変更します。
  • プロビジョニングテンプレートを以下のように作成してから、それらをデフォルトテンプレートと共にオペレーティングシステムに割り当てます。

手順9.17 gPXE プロビジョニングテンプレートを設定するには、以下を実行します。

  1. HostsProvisioning templates をクリックします。
  2. テンプレートの デフォルト PXELinux を見つけて、Clone を選択します。
  3. (例: Kickstart default gPXELinux )の名前を入力します。
  4. テンプレートエディターで、@initrd を検索し、@host.url_for_boot (:initrd)に置き換えます。
  5. テンプレートエディターで、@kernel を検索して @host.url_for_boot (:kernel)に置き換えます。
  6. Type タブを選択します。Type ドロップダウンメニューから PXELinux を選択します。
  7. 関連付け タブ で、テンプレートに関連付けるホストグループ、環境、およびオペレーティングシステムを選択します。適用 可能なオペレーティングシステム リストからオペレーティングシステムを選択します。Add Combination をクリックして、HostgroupEnvironment を選択し、テンプレートの使用を制限します。
  8. 送信 をクリックします。

9.3.11. オペレーティングシステム

オペレーティングシステムは、インストール方法とメディアの組み合わせを定義し、ファミリー内でグループ化されます。デフォルトでは、Red Hat Satellite は RedHat ファミリーを使用します。ファミリーを使用すると、Satellite はホストのプロビジョニング時に特定の動作を変更することができます。

手順9.18 オペレーティングシステムを追加するには、以下を実行します。

  1. HostsOperating Systems をクリックします。
  2. New Operating system をクリックします。オペレーティングシステム タブで、以下の設定を指定します。
    1. オペレーティングシステムおよびその メジャーバージョンの 名前 を入力します。これらの設定は必須です。
    2. オプションで マイナーバージョン を 定義しOS ファミリー を選択して、オペレーティングシステムの 説明 を追加します。
    3. Root パスワードハッシュ (MD5、SHA256、SHA512)を選択します。
    4. 利用可能な アーキテクチャー の一覧からアーキテクチャーを選択します。利用できない場合は、「アーキテクチャー」 の説明に従って、ホスト アーキテクチャーの 下に作成して割り当てます。
  3. Partition tables タブで、一覧から該当するファイルシステムレイアウトを選択します。パーティションテーブルの作成方法は、「パーティションテーブル」 を参照してください。
  4. インストールメディア タブで、一覧から適切なインストールメディアを選択します。インストールメディアの追加に関する詳細は、「インストールメディア」 を参照してください。
  5. テンプレート タブでは、既存のオペレーティングシステムの編集時にプロビジョニングテンプレートを割り当てることができます。このオプションは、新しいオペレーティングシステムを作成する場合は利用できません。プロビジョニングテンプレートの作成に関する詳細は、「Provisioning Templates」 を参照してください。
  6. パラメーター タブ は、オペレーティングシステムのパラメーターを追加できます。
  7. 送信 をクリックします。

9.4. ホスト情報の保存および維持

Red Hat Satellite 6 は、アプリケーションの組み合わせを使用してマネージドホストに関する情報を収集し、それらのホストが望ましい状態で維持されるようにします。これらのアプリケーションには、以下が含まれます。
  • Foreman: 物理システムと仮想システムのプロビジョニングおよびライフサイクル管理用です。Foreman は、キックスタートや Puppet モジュールなどの各種の方法を使用して、これらのシステムを自動的に設定します。
  • Puppet: ホストを設定するためのクライアント/サーバーアーキテクチャーです。Puppet マスター (サーバー) および Puppet エージェント (クライアント) で設定されます。
  • Facter: Puppet のシステムインベントリーツール。Facter は、ハードウェアの詳細、ネットワーク設定、OS の種類およびバージョン、IP アドレス、MAC アドレス、SSH キーなど、ホストに関する基本的な情報 (ファクト) を収集します。その後、これらのファクトは Puppet マニフェストで変数として利用できます。
Puppet、Facter およびファクトの使用については、以下で詳述します。

9.4.1. Puppet アーキテクチャー

Puppet は通常、エージェント/マスター(クライアント/サーバーとしても知られる)アーキテクチャーで実行されます。ここで、Puppet サーバーは重要な設定情報を管理し、マネージドホスト(クライアント)は独自の設定カタログのみを要求します。Puppet は 2 つの手順でホストを設定します。
  • カタログのコンパイル
  • カタログの該当ホストへの適用
エージェント/マスターの設定では、Puppet クライアントは Facter によって収集されるファクトやその他の情報を Puppet マスターに送信します。Puppet マスターは、これらのファクトに基づいてカタログをコンパイルし、このカタログをクライアントに送信します。クライアントは行ったすべての変更のレポートを送信するか、または the- noop パラメーターを使用した場合は Puppet マスターに結果を送信し、その結果を Foreman に送信します。このカタログは、1 つの特定ホストの必要な状態を記述します。リソース間の依存関係を含む、そのホストで管理するリソースをリスト表示します。エージェントはカタログをホストに適用します。
マスターとエージェント間の通信は、デフォルトで 30 分ごとに実行されます。runinterval パラメーターを使用して、/etc/puppet/puppet.conf ファイルに別の値を指定できます。puppet agent apply を実行して、通信を手動で開始することもできます。

9.4.2. Facter およびファクトの使用

Facter は Puppet のシステムインベントリーツールで、多数の組み込みファクトが含まれています。Facter は、ローカルホストのコマンドラインで実行して、ファクト名と値を表示できます。カスタムファクトで Facter を拡張し、これを使用してホストのサイト固有の詳細を Puppet マニフェストに公開することができます。Facter が提供するファクトを使用して、Puppet で条件式に通知することもできます。
Puppet はリソースに基づいてシステム状態を決定します。たとえば、httpd サービスは常に実行している必要があり、Puppet はそれを処理する方法を知っていることを Puppet に伝えることができます。異なるオペレーティングシステムを管理する場合は、osfamily ファクトを使用して条件式を作成し、どのサービスを監視するか、どのパッケージをインストールするかを Puppet に伝えることができます。operatingsystemmajrelease パラメーターおよび versioncmp パラメーターを使用して、同じオペレーティングシステムの異なるバージョンに基づいて条件式を作成できます。条件式の使用例は、例9.1「条件式とファクトの使用」 を参照してください。

例9.1 条件式とファクトの使用

if $:: osfamily == 'RedHat' {
  if $::operatingsystemmajrelease == '6' {
   $ntp_service_name = 'ntpd'
   }

  elseif versioncmp($::operatingsystemmajrelease, '7') >= 0 {
   $ntp_service_name = 'chrony'
   }
 }
Copy to Clipboard Toggle word wrap
注記
この例では、式 "versioncmp ($::operatingsystemmajrelease, '7')>= 0" を使用して、Red Hat Enterprise Linux のバージョン 7 以降をテストします。このテストを実行するには、式 $::operatingsystemmajrelease >= '7' を使用しないでください。この関数およびその他の Puppet 関数の詳細は、https://docs.puppetlabs.com/references/latest/function.html#versioncmp を参照してください。
また、Puppet は、ファクトが多く動作する他の特別な変数も設定します。Special Variables Added by Puppet を参照してください。 また、Core Facts (詳細情報)
9.4.2.1. 特定ホストのファクトの表示
Puppet は、Facter の組み込まれたコアファクトや、Puppet モジュールに存在するカスタムまたは外部のファクトにアクセスできます。コマンドライン(facter -p)および Web UI (MonitorFact)から利用可能なファクトを表示できます。ファクトのリストを参照するか、Search ボックスを使用して特定のファクトを検索できます。たとえば、"facts."と入力すると、利用可能なファクトのリストが表示されます。
注記
利用可能なファクトのリストは非常に長くなります。UI は一度に 20 ファクトのみを表示します。詳細の入力時のファクトの段階的フィルターのリストです。たとえば、"facts.e" と入力して、"e" で始まるすべてのファクトを表示します。

手順9.19 特定ホストのファクトを表示するには、以下を実行します。

  1. メインメニューで HostsAll Hosts をクリックし、検査するホストの名前をクリックします。
  2. Details ペインで Facts をクリックし、ホストに関する既知のファクトをすべて表示します。
注記
  • このページにリストされているファクトについて、Chart をクリックし、このファクト名のすべてのマネージドホストにおけるディストリビューションチャートを表示します。
  • 検索をブックマークすると、今後簡単に使用できるようになります。検索を絞り込みたら、Search ボタンの横にあるドロップダウン矢印をクリックし、Bookmark this search をクリックします。ブックマークされた検索は Search ドロップダウンリストに表示され、メインメニューの AdministerBookmarks の下にも表示されます。
9.4.2.2. ファクトに基づくホストの検索
Facter 情報を使用して、特定のホストを検索できます。これは、facts. architecture = x86_64 などの特定のファクト 基準に一致するすべてのホストを検索できることを意味します。

手順9.20 ファクトに基づいてホストを検索するには、以下を実行します。

  1. メインメニューで、MonitorFacts をクリックして Fact Values ページを表示します。
  2. Search フィールドで、フィルタリングするファクトの名前を入力します。特定の名前、名前と値のペアなどで検索できます。
  3. Search をクリックして、一致するホストのリストを取得します。
9.4.2.3. カスタムファクトのレポート
管理ホストからのカスタム情報の取得は、Red Hat Satellite 6 で完全にサポートされています。このセクションでは、Puppet Forge から取得した Puppet モジュールを使用していますが、原則は Puppet モジュールの他のソースに対して同等に適用されます。
標準の Facter インターフェイスを介して報告されるファクトの数は拡張できます。たとえば、モジュールの変数として使用するファクトを収集します。インストールされたパッケージを説明するファクトが利用可能な場合は、このデータを検索し、情報に基づいて設定管理の決定を行うことができるようになります。
ホストにインストールされたパッケージについてのレポートを取得するプロセスは以下のようになります。
  • マニフェスト pkginventory は Puppet Forge から取得され、ベースシステムに保存されます。
  • Puppet モジュールはコンテンツビューに追加され、これはシステムにプロモートされてからそのシステムにデプロイされます。
  • システムのファクトは、パッケージ名を使用してクエリーされます。この例では、hostname という名前のホストと、認証情報のユーザー および パスワード を持つ Satellite ユーザーを使用している場合、以下の API クエリーは検索文字列 "bash" に一致するファクトを返します。
    curl -u username:password -X GET http://localhost/api/hosts/:hostname/facts?search=bash
    {"hostname":{"pkg_bash":"4.2.45-5.el7_0.4"}}
    
    Copy to Clipboard Toggle word wrap
    検索は、パッケージバージョンを返します。その後、外部データベースの設定に使用していました。
pkginventory Puppet モジュールの追加
pkginventory Puppet モジュールを Red Hat Satellite Server アプリケーションに追加するには、https://forge.puppetlabs.com/ody/pkginventory から Satellite Server アプリケーションがインストールされているベースシステムにモジュールをダウンロードし、以下の手順に従います。
Puppet モジュールは通常、Puppet Modules という名前のカスタムリポジトリーに保存されます。以下の手順は、その名前のカスタムリポジトリーを作成していることを前提としています。Puppet モジュールのカスタムリポジトリーを作成していない場合は、『Red Hat Satellite クイックスタートガイドの カスタム 製品の作成 と リポジトリーの有効化 を参照してください』。

手順9.21 Puppet モジュールをリポジトリーにアップロードするには、以下を実行します。

  1. ベースシステムに Puppet モジュールをダウンロードします。ダウンロードしたモジュールの拡張子は .tar.gz になります。
  2. ContentProducts をクリックしてから、Puppet モジュールリポジトリーに関連付けられた Name フィールドで製品名をクリックします。たとえば、Custom Products です。
  3. Repositories タブで、変更する Puppet Modules リポジトリーを選択します。たとえば、Puppet Modules です。
  4. Upload Puppet Module セクションで Browse をクリックし、ダウンロードしたモジュールに移動します。
  5. アップロード をクリックします。
Puppet モジュールをクライアントに配布するには、モジュールはコンテンツビューに適用して公開する必要があります。以下の手順に従って、コンテンツビューにモジュールを追加します。

手順9.22 モジュールをコンテンツビューに追加するには、以下を実行します。

  1. ContentViews をクリックして、Name メニューからコンテンツビューを選択します。
  2. Puppet モジュール タブで 新規モジュールの 追加 をクリックします。インストールされたモジュールのリストが表示されます。
  3. Actions コラムから Select a Version をクリックし、追加するモジュールを選択します。利用可能なバージョンの表が表示されます。
  4. 追加するモジュールのバージョンの横にある バージョンの 選択 をクリックします。
  5. 新規バージョンの 公開 をクリック して、新しいコンテンツビューを作成します。
  6. 必要に応じて説明を追加し、Save をクリックします。


[3] https://docs.puppetlabs.com/puppet/3.7/reference/lang_facts_and_builtin_vars.html#special-variables-added-by-puppet
[4] https://docs.puppetlabs.com/facter/latest/core_facts.html

第10章 ホストの設定

Red Hat Satellite では、ホストは Red Hat Subscription Manager がインストールされているクライアントシステムです。Red Hat Subscription Manager は Red Hat Satellite に更新を送信し、Red Hat Satellite はこれらのクライアントシステムに更新を提供します。
ホストを管理するには、ホストを登録する必要があります。ホストが登録されたら、ホストタブで表示および編集できます。これにより、ユーザーはサブスクリプションの追加と管理、ソフトウェアパッケージの追加と削除、および更新の適用が可能になります。

10.1. ホストの参照

Satellite Server Web UI では、Satellite Server が認識するすべてのホストを閲覧できます。画面上部の Hosts タブに移動し、以下の項目を含むドロップダウンメニューを開きます。
  • すべての ホスト:Satellite Server が認識するすべてのホストの一覧です。
  • 検出 された ホスト:プラグインによってプロビジョニングネットワークで検出されたベアメタルホストの一覧です。
  • コンテンツホスト は、コンテンツとサブスクリプションに関連するタスクを管理するホストの一覧です。
  • ホストコレクション: エラータのインストールなどの一括操作に使用するユーザー定義のホストコレクションの一覧です。
ホストを検索するには、検索 フィールドに文字を入力し、アスタリスク(*)を使用して部分的な文字列検索を実行します。たとえば dev-node.example.com という名前のコンテンツホストを検索する場合は、コンテンツ ホスト ページをクリックし、検索 フィールドに dev-node* と入力します。または、*node* でも、コンテンツホスト dev-node.example.com が見つかります。

10.2. ホストの状態タイプ

Satellite Server が認識する各ホストには、そのホストに適用される最新のアクションまたは今後の変更に基づいて、状態のタイプが割り当てられます。ホスト → すべてのホスト に移動して、各ホストのステータスを表示します。以下の表は、ホストに割り当てることができるステータスタイプの概要を示しています。
Expand
表10.1 ホストの状態タイプ
アイコン状態説明
Error ホストでエラーが検出されました。エラーアイコンにマウスをかざすと、エラーの実際の理由を示すヒントが表示されます。ホストをクリックすると、問題のより詳細なレポートが表示されます。
Warning ホストが設定されていますが、最終レポート期間のホストについてのレポートは収集されていません。
OK ホストについての保留中のアクションがなく、最終レポート期間には保留中の変更やエラーがありません。

10.3. ホストの概要

ホストの概要ページには、特定のホストとホストとインストーラー間の接続に関する情報が表示されます。ホストの概要ページを表示するには、ホスト → すべてのホスト を選択し、ホストの名前をクリックします。

詳細

詳細バーには、ホストについての詳細情報へのショートカットを提供するボタンの列と、重要な詳細情報とイベントの概要を表示するタブが含まれます。
  • audits : 現在 ホストの監査エントリーが含まれるページ。
  • ファクト: 現在のホストのファクトの一覧が含まれるページ。このボタンは、インストーラーがホストからファクトを収集した後にのみ利用できます。
  • Reports: 現在のホストのレポートの一覧が含まれるページ。このボタンは、インストーラーがホストからレポートを収集した後にのみ利用できます。
  • YAML: ホストの IP アドレス、MAC アドレス、名前、ホストに適用されているパラメーターの値などの YAML 形式のホストの詳細が記載されたページです。
  • Properties: ホストに適用されているオペレーティングシステムのエントリーなど、ホストに関する一般的な詳細の一覧です。
  • メトリック: ホストで報告されたすべてのイベントの概要を示す表です。
  • テンプレート: ホストから現在アクセス可能なプロビジョニングテンプレートの一覧です。この一覧に含まれるプロビジョニングテンプレートは、ホストに適用されるオペレーティングシステムのエントリーに従って自動的に設定されます。
  • NIC: ホスト用に設定された NIC の詳細情報を示す表。

ホストのアクション

以下のボタンのいずれかをクリックしてホストに対する共通のアクションを実行します。

ホストのグラフ

ホストの概要ページには、ホストに実行された最新の Puppet 実行の状態を表示する 2 つのグラフが含まれます。
  • ランタイム: Config Retrieval および Runtime という 2 つのデータポイントを追跡します。Config Retrieval データポイントは、指定の Puppet 実行時にホストに関する情報を収集するのにかかった時間を表し、ランタイム データポイントは Puppet 実行に必要な時間を表します。両方のデータポイントは秒単位で測定されます。
  • リソース: Puppet 実行時にホストで実行されたアクションの数を追跡します。このグラフに表示されるカテゴリーは、レポート ページに表示されるカテゴリーと同じで、各カテゴリーのアクション数を使用して測定されます。

10.4. ホストの作成

以下の手順では、Red Hat Satellite でホストを作成する方法を説明します。

手順10.1 ホストの作成方法:

  1. HostsNew Host をクリックします。
  2. ホスト タブで、必要な詳細を入力します。
  3. Puppet クラス タブで、追加する Puppet クラスを選択します。
  4. インターフェイス タブで、以下を行います。
    1. 各インターフェイスに対して、アクション コラムで 編集 をクリックし、必要に応じて以下を設定します。
      • タイプ : ボンドまたは BMC インターフェイスに対して、タイプ リストで、インターフェイスタイプを選択します。
      • MAC アドレス: MAC アドレスを入力します。
      • 識別 子 - デバイス識別子としてデバイス名を入力します。
      • DNS 名 - DNS サーバーに認識する DNS 名を入力します。これは、完全修飾ドメイン名 (FQDN) のホスト部分に使用されます。
      • ドメイン: プロビジョニングネットワークのドメイン名を選択します。これにより、サブネット リストが自動的 更新され、適切なサブネットの選択肢が表示されます。
      • サブネット: リストから、ホストのサブネットを選択します。
      • IP アドレス: 選択したサブネットに DHCP 対応の Capsule Server がある場合は、IP アドレスが自動的に提案されます。必要に応じて、Suggest new をクリックして別のアドレスを生成します。または、IP アドレスを入力することもできます。トークンのプロビジョニングが有効な場合、ドメインが DNS を管理しない場合、サブネットが逆引き DNS を管理しない場合、またはサブネットが DHCP 予約を管理しない場合は、このアドレスを省略できます。
      • 管理: このチェックボックスを選択すると、Capsule が提供する DHCP サービスおよび DNS サービスを使用してプロビジョニングを行う際にインターフェイスを設定します。
      • プライマリー - このチェックボックスを選択すると、このインターフェイスの DNS 名を、FQDN のホスト部分に使用します。
      • プロ ビジョニング:このチェックボックスを選択すると、プロビジョニングにこのインターフェイスを使用します。つまり、このインターフェイスを使用して TFTP ブートが行われ、そしてイメージをベースにしたプロビジョニングでは、プロビジョニングを実行するスクリプトにこのインターフェイスが使用されます。anaconda による RPM のダウンロード、%post スクリプトの Puppet 設定などの多くのプロビジョニングタスクは、プライマリーインターフェイスを使用する点にご留意ください。
      • 仮想 NIC: このインターフェイスが物理デバイスではない場合は、このチェックボックスを選択します。この設定にはオプションが 2 つあります。
        • タグ - 任意で VLAN タグを設定します。設定していない場合はサブネットの VLAN ID となります。
        • 割り当て : この仮想インターフェイスが割り当てられるインターフェイスのデバイス名を入力します。
    2. OK をクリックして、インターフェイス設定を保存します。
    3. オプションとして、インターフェイスの 追加 を クリックし、追加ネットワークインターフェイスを組み込みます。詳細は、「追加のネットワークインターフェイスの設定」 を参照してください。
    4. Submit を押して変更を適用し、終了します。
  5. オペレーティングシステム タブで、必要な情報を入力します。ドロップダウンリストからパーティションテーブルを選択するか、カスタムパーティションテーブル フィールドでカスタムのパーティションテーブルを入力します。両方は指定できません。
  6. Parameters タブで Add Parameter をクリックし、必要なパラメーターを追加します。これには、ホストに関連付けられたすべての Puppet クラスパラメーターおよびホストパラメーターが含まれます。
  7. 追加情報 タブに、ホストに関する追加情報を入力します。
  8. 送信 をクリックして、プロビジョニングリクエストを完了します。

10.5. Registration

このセクションでは、Satellite Server または Capsule Server にホストを登録する方法を説明します。ホストを登録する方法は 2 つあります。
  • コンシューマー RPM (server.example.com/pub/katello-ca-consumer-latest.noarch.rpm)をダウンロードしてインストールしてから、subscription manager を実行します。この方法は、新規インストールしたホストに適しています。詳細は、「ホスト登録の設定」 および 「ホストの登録」 を参照してください。
  • ブートストラップスクリプト(server.example.com/pub/bootstrap.py)をダウンロードして実行します。この方法は、新規インストールしたホストにも、Satellite 5 や別の Satellite 6 に登録済みのホストなどにも適しています。詳細は、「ブートストラップスクリプトを使用したホストの Satellite 6 への登録」 を参照してください。
Red Hat Subscription Manager 経由で Satellite Server に登録されたホストは、キックスタートの後フェーズまたはターミナルから発生する可能性があります。これは、ホストのコンテンツホストからアクセスできる コンテンツホスト ページに表示 されますSatellite Server がプロビジョニングするホストは、すべてのホスト+ Hosts ページに表示されます。

10.5.1. ホスト登録の設定

Red Hat Enterprise Linux ホストは、デフォルトでカスタマーポータルの Subscription Management に登録されます。各ホスト設定を更新して、正しい Satellite Server または Capsule Server から更新を受け取れるようにする必要があります。
前提条件
  • ホストは、以下の Red Hat Enterprise Linux バージョンを使用している必要がある。
    • 5.7 以降
    • 6.4 以上
    • 7.0 以上
  • Red Hat Enterprise Linux のすべてのアーキテクチャーがサポートされる (i386、x86_64、s390x、ppc_64)。
  • Satellite Server、任意の Capsule Server、およびすべてのホストが同じ NTP サーバーで同期されていることを確認します。
  • 時刻同期ツールが Satellite Server、任意の Capsule Server、およびホストで実行されていることを確認します。
    • Red Hat Enterprise Linux 6 の場合:
      # chkconfig ntpd on; service ntpd start
      Copy to Clipboard Toggle word wrap
    • Red Hat Enterprise Linux 7 の場合:
      # systemctl start chronyd; systemctl enable chronyd
      Copy to Clipboard Toggle word wrap
  • デーモン rhsmcertd がホストで実行されていることを確認します。
    • Red Hat Enterprise Linux 6 の場合:
      # service rhsmcertd start
      Copy to Clipboard Toggle word wrap
    • Red Hat Enterprise Linux 7 の場合:
      # systemctl start rhsmcertd
      Copy to Clipboard Toggle word wrap
以下の手順では、ホストを Red Hat Satellite に登録する設定方法を示します。

手順10.2 ホストを登録するための設定:

  1. Satellite Server または Capsule Server の完全修飾ドメイン名(FQDN)をメモしておきます(例: server.example.com )。
  2. ホストでターミナルを開き、root でログインします。
  3. ホストを登録する Satellite Server または Capsule Server からコンシューマー RPM をインストールします。コンシューマー RPM は、ホストのコンテンツソースのロケーションを更新し、ホストが Red Hat Satellite に指定したコンテンツソースからコンテンツをダウンロードできるようにします。
    # rpm -Uvh http://server.example.com/pub/katello-ca-consumer-latest.noarch.rpm
    Copy to Clipboard Toggle word wrap
    重要
    実行中の Docker デーモンが再起動します。
    注記
    katello-ca-consumer-hostname-1.0-1.noarch.rpm は、サーバーのホスト名を含む、利用可能な追加の katello-ca-consumer RPM です。katello-ca-consumer-latest.noarch.rpm rpm は常に最新のバージョンを反映します。どちらを使用しても達成できる目的は同じです。

10.5.2. ホストの登録

前提条件
  • 「ホスト登録の設定」 の手順をすべて完了してください。
  • ホストに対して、適切なコンテンツビューおよび環境に関連付けられたアクティベーションキーが存在することを確認します。そうでない場合は、7章アクティベーションキーの設定 を参照してください。アクティベーションキーでは、デフォルトで自動アタッチ機能が有効になっています。この機能は、一般的にハイパーバイザーとして使用されるホストで使用されます。
  • subscription-manager ユーティリティーのバージョンが 1.10 以上であることを確認します。パッケージは標準の Red Hat Enterprise Linux リポジトリーで入手可能です。

手順10.3 ホストを登録する方法:

  1. ホストでターミナルを開き、root でログインします。
  2. Red Hat Subscription Manager (RHSM) に関連するすべての以前のホストデータを消去します。
    # subscription-manager clean
    
    Copy to Clipboard Toggle word wrap
  3. RHSM を使用してホストを登録します。
    # subscription-manager register --org your_org_name --activationkey your_activation_key
    Copy to Clipboard Toggle word wrap

    例10.1 登録後のコマンド出力:

    # subscription-manager register --org MyOrg --activationkey TestKey-1
    The system has been registered with id: 62edc0f8-855b-4184-b1b8-72a9dc793b96
    
    Copy to Clipboard Toggle word wrap
注記
アクティベーションキーで定義したコンテンツビューとライフサイクル環境を上書きするには、--environment オプションを使用します。たとえば、開発ライフサイクル環境のコンテンツビュー MyView にホストを登録するには、以下を実行します。
 # subscription-manager register --org your_org_name --environment Development/MyView --activationkey your_activation_key
Copy to Clipboard Toggle word wrap
注記
Red Hat Enterprise Linux 6.3 ホストの場合には、リリースバージョンが Red Hat Enterprise Linux 6 Server にデフォルト設定されており、6.3 リポジトリーを指定する必要があります。

手順10.4 Red Hat Enterprise Linux 6.3 からリポジトリーをポイントする方法:

  1. Red Hat Satellite で、HostsContent Hosts を選択します。
  2. 変更する必要のあるホストの名前をクリックします。
  3. コンテンツホストの コンテンツ セクションで、リリースバージョン の右側にある編集アイコンをクリック します
  4. リリースバージョン のドロップダウンメニューから、"6.3" を選択します。
  5. Save をクリックします。

10.5.3. Katello エージェントのインストール

以下の手順は、Satellite 6 に登録されているホストに Katello エージェントをインストールする方法を示しています。katello-agent パッケージは、goferd service を提供する gofer パッケージによって異なります。Red Hat Satellite Server または Capsule Server が、コンテンツホストに適用可能なエラータに関する情報を提供できるように、このサービスを有効にしておく必要があります。
前提条件
Satellite バージョン 6.1 以降では、Satellite Tools リポジトリーを有効にする必要があります。Red Hat Common リポジトリーは使用されなくなり、Satellite バージョン 6.1 以降と互換性がありません。
Satellite Tools リポジトリーは必要なパッケージを提供するため、有効にして Red Hat Satellite Server と同期し、ホストが利用できるようにする必要があります。

手順10.5 Satellite Tools リポジトリーが有効にされていることを確認するには、以下を実行します。

  1. Satellite Web UI を開き、コンテンツRed Hat リポジトリー に移動して、RPM タブをクリックします。
  2. Red Hat Enterprise Linux Server 項目を見つけ、展開します。
  3. Red Hat Satellite Tools 6.2 (RHEL VERSION Server 用) (RPM) 項目を見つけ、展開します。
    Red Hat Satellite Tools 6.2 の項目が表示されていない場合は、カスタマーポータルから取得したサブスクリプションマニフェストにその項目が含まれないことが原因として考えられます。この問題を修正するには、カスタマーポータルにログインし、これらのリポジトリーを追加し、サブスクリプションマニフェストをダウンロードして、Satellite にインポートします。
  4. リポジトリーの名前の横にある Enabled チェックボックスが選択されていることを確認します。選択されていない場合は、選択します。
ホストで実行している Red Hat Enterprise Linux の各サポート対象メジャーバージョンに対して Satellite Tools リポジトリーを有効にします。

手順10.6 Katello エージェントをインストールする方法:

  1. ホストで、satellite-tools リポジトリーが有効になっていることを確認します。自動アタッチが有効なアクティベーションキーを使用してホストを登録した場合、リポジトリーはすでに自動的に有効になっています。
    # yum repolist enabled | grep -i satellite-tools
    Copy to Clipboard Toggle word wrap
    satellite-tools が有効になっていない場合は、以下のコマンドで有効にします。
    # subscription-manager repos --enable=rhel-version-server-satellite-tools-6.2-rpms
    Copy to Clipboard Toggle word wrap
  2. 以下のコマンドを使用して katello-agent RPM パッケージをインストールします。
    # yum install katello-agent
    Copy to Clipboard Toggle word wrap
  3. goferd サービスが実行していることを確認します。
    • Red Hat Enterprise Linux 6 の場合は、以下のコマンドを入力します。
      # service goferd start
      Copy to Clipboard Toggle word wrap
    • Red Hat Enterprise Linux 7 の場合は、以下のコマンドを入力します。
      # systemctl start goferd
      Copy to Clipboard Toggle word wrap

10.5.4. Puppet エージェントのインストールおよび設定

このセクションでは、ホストに Puppet エージェントをインストールして設定する方法について説明します。Puppet エージェントを正しくインストールして設定している場合は、HostsAll hosts に移動して、Red Hat Satellite Server に表示されるすべてのホストをリストできます。
前提条件
Satellite Tools リポジトリーは必要なパッケージを提供するため、有効にして Red Hat Satellite Server と同期し、ホストが利用できるようにする必要があります。

手順10.7 Satellite Tools リポジトリーが有効にされていることを確認するには、以下を実行します。

  1. Satellite Web UI を開き、コンテンツRed Hat リポジトリー に移動して、RPM タブをクリックします。
  2. Red Hat Enterprise Linux Server 項目を見つけ、展開します。
  3. Red Hat Satellite Tools 6.2 (RHEL VERSION Server 用) (RPM) 項目を見つけ、展開します。
    Red Hat Satellite Tools 6.2 の項目が表示されていない場合は、カスタマーポータルから取得したサブスクリプションマニフェストにその項目が含まれないことが原因として考えられます。この問題を修正するには、カスタマーポータルにログインし、これらのリポジトリーを追加し、サブスクリプションマニフェストをダウンロードして、Satellite にインポートします。
  4. リポジトリーの名前の横にある Enabled チェックボックスが選択されていることを確認します。選択されていない場合は、選択します。

手順10.8 Puppet エージェントをインストールし、有効にする方法:

  1. ホストでターミナルコンソールを開き、root ユーザーとしてログインします。
  2. 以下のコマンドを使用して、satellite-tools リポジトリーが有効になっていることを確認します。
    # yum repolist enabled | grep -i satellite-tools
    Copy to Clipboard Toggle word wrap
    satellite-tools が有効になっていない場合は、以下のコマンドで有効にします。
    # subscription-manager repos --enable=rhel-version-server-satellite-tools-6.2-rpms
    Copy to Clipboard Toggle word wrap
  3. 以下のコマンドを使用して Puppet エージェントの RPM パッケージをインストールします。
    # yum install puppet
    
    Copy to Clipboard Toggle word wrap
  4. 起動時に開始する Puppet エージェントを設定します。
    • Red Hat Enterprise Linux 6 の場合:
      # chkconfig puppet on
      Copy to Clipboard Toggle word wrap
    • Red Hat Enterprise Linux 7 の場合
      # systemctl enable puppet
      Copy to Clipboard Toggle word wrap

前提条件

Puppet エージェントを設定する前に、以下の条件を満たしている必要があります。

  • ホストを Red Hat Satellite Server に登録しておく必要があります。
  • Satellite Tools リポジトリーが有効にされている必要があります。
  • Puppet パッケージがホストにインストールされている必要があります。

手順10.9 Puppet エージェントを設定する方法:

  1. /etc/puppet/puppet.conf ファイルでサーバーおよび環境設定を指定して、Puppet エージェントを設定します。
    # vi /etc/puppet/puppet.conf
    
    Copy to Clipboard Toggle word wrap
    [main]
        # The Puppet log directory.
        # The default value is '$vardir/log'.
        logdir = /var/log/puppet
    
        # Where Puppet PID files are kept.
        # The default value is '$vardir/run'.
        rundir = /var/run/puppet
    
        # Where SSL certificates are kept.
        # The default value is '$confdir/ssl'.
        ssldir = /var/lib/puppet/ssl
    
    ...
    
    [agent]
        # The file in which puppetd stores a list of the classes
        # associated with the retrieved configuratiion.  Can be loaded in
        # the separate ``puppet`` executable using the ``--loadclasses``
        # option.
        # The default value is '$confdir/classes.txt'.
        classfile = $vardir/classes.txt
        pluginsync = true
        report = true
        ignoreschedules = true
        daemon = false
        ca_server = satellite.example.com
        server = satellite.example.com
        environment = KT_Example_Org_Library_RHEL6Server_3
    
        # Where puppetd caches the local configuration.  An
        # extension indicating the cache format is added automatically.
        # The default value is '$confdir/localconfig'.
        localconfig = $vardir/localconfig
    
    ...
    
    Copy to Clipboard Toggle word wrap
    重要
    ホストの所属先の Puppet 環境名に environment パラメーターを設定します。Puppet 環境は、ホストまたはホストグループに関連付けることができる Puppet モジュールのコレクションです。
    • ホストの Puppet 環境を見つけるには、HostsAll Hosts に移動し、ホストテーブルの Environment コラムを検査します。
    • Puppet 環境をホストに割り当てるには、HostsAll Hosts に移動し、選択したホストの横にある Edit をクリックします。
    • Satellite Server で有効な Puppet 環境を表示するには、環境 設定ます。Satellite Server の /etc/puppet/environments/ ディレクトリーを確認して、Puppet 環境に関連付けられている Puppet モジュールとマニフェストを確認することもできます。
  2. ホスト上で Puppet エージェントを実行します。
    # puppet agent -t --server satellite.example.com
    Copy to Clipboard Toggle word wrap
  3. Satellite Server Web UI を使って Puppet クライアントの SSL 証明書に署名します。
    1. Web UI から Satellite Server にログインします。
    2. インフラストラクチャー Capsule を 選択 ます。
    3. 必要な Capsule の右側にあるドロップダウンメニューから Certificates を選択します。
    4. 必要なホストの右側にある Sign をクリックします。
    5. puppet agent コマンドを再度入力します。
      # puppet agent -t --server satellite.example.com
      Copy to Clipboard Toggle word wrap
注記
ホストに Puppet エージェントが設定されている場合は、All Hosts に表示されますが、ホストは組織またはロケーションに割り当てられないため、Any Organization が選択されている場合に限ります。ホストを組織に割り当てるには、「ホストの特定組織への割り当て」 を参照するか、またはホストをロケーションに割り当てるには、「ホストの特定ロケーションへの割り当て」 を参照してください。

10.5.5. ブートストラップスクリプトを使用したホストの Satellite 6 への登録

6.2 以降に含まれているブートストラップスクリプトを使用して、新規ホストを登録するか、既存のホストを Satellite 6 に移行できます。
ブートストラップスクリプトは、コンテンツの登録、製品の証明書、および Puppet の設定を処理します。ブートストラップスクリプトには、登録先(RHN、Satellite 5、SAM、RHSM)、または登録され、Satellite 6 にサブスクライブされているかどうかに関係なく、Red Hat Enterprise Linux システムを使用できるという利点があります。
ブートストラップスクリプトのパッケージである katello-client-bootstrap は、デフォルトで Satellite Server のベースシステムにインストールされ、スクリプトは /var/www/html/pub/ ディレクトリーにインストールされ、ホストで使用できるようになります。以下の形式の URL を使用してアクセスできます。
satellite6.example.com/pub/bootstrap.py
Copy to Clipboard Toggle word wrap
このスクリプトには readme ファイルがあります。Satellite CLI でこのファイルを表示するには、以下のコマンドを実行します。
$ less /usr/share/doc/katello-client-bootstrap-version/README.md
Copy to Clipboard Toggle word wrap

手順10.10 ホストへのブートストラップのインストール

スクリプトは 1 度しか必要ではなく、また、root ユーザー専用であるため、/root に配置して使用後に削除するか、/usr/local/sbin に配置できます。この例では、/root を使用します。
root で、以下のようにブートストラップスクリプトをホストにインストールします。
  1. 正しいディレクトリーにいることを確認します。たとえば、/root に変更するには、次のコマンドを実行します。
    # cd
    Copy to Clipboard Toggle word wrap
  2. スクリプトをダウンロードします。
    # wget http://satellite6.example.com/pub/bootstrap.py
    Copy to Clipboard Toggle word wrap
    これにより、スクリプトが現行ディレクトリーにインストールされます。
  3. スクリプトを実行可能にします。
    # chmod +x bootstrap.py
    Copy to Clipboard Toggle word wrap
  4. スクリプトが実行できることを確認するには、以下のように使用ステートメントを表示します。
    # ./bootstrap.py -h
    Copy to Clipboard Toggle word wrap
  5. 移行プロセスが完了したら、スクリプトを削除できます。
    # cd
    # rm bootstrap.py
    Copy to Clipboard Toggle word wrap

手順10.11 ブートストラップスクリプトの実行

前提条件
  • 前述のように、ブートストラップスクリプトがインストールされています。
  • 必要なホストのアクティベーションキーがある。アクティベーションキーの設定は、7章アクティベーションキーの設定 を参照してください。
  • ホストグループを作成済みである。ホストグループの作成については、「ホストグループの作成」 を参照してください。
  1. ご使用の環境に適した値を使用して、以下のようにブートストラップコマンドを出力します。
    --server オプションの場合は、Satellite Server または Capsule Server の FQDN 名を指定します。for-- location,--organization, and-- hostgroup オプションは、オプションへの引数として、ラベルではなく引用符で囲まれた名前を使用します。詳細なユースケースは 「詳細なブートストラップスクリプトの設定」 を参照してください。
    # bootstrap.py --login=admin \
    --server satellite6.example.com \
    --location="Example Location" \
    --organization="Example Organization" \
    --hostgroup="Example Host Group" \
    --activationkey=activation_key
    Copy to Clipboard Toggle word wrap
    スクリプトは、the- login オプションで入力した Satellite ユーザー名に対応するパスワードの入力を求めるプロンプトを出します。
  2. スクリプトが実行され、進捗の通知が標準出力( stdout )に送信されます。証明書の承認を求めるプロンプトが表示されるのを確認します。以下に例を示します。
    [NOTIFICATION], [2016-04-26 10:16:00], [Visit the UI and approve this certificate via Infrastructure->Capsules]
    [NOTIFICATION], [2016-04-26 10:16:00], [if auto-signing is disabled]
    [RUNNING], [2016-04-26 10:16:00], [/usr/bin/puppet agent --test --noop --tags no_such_tag --waitforcert 10]
    Copy to Clipboard Toggle word wrap
    ホストは、管理者が Puppet 証明書を承認するまで無期限に待機します。
    1. Web UI で、InfrastructureCapsules に移動します。
    2. 指定した FQDN- server オプションに対応する Capsule 名の右側にある 証明書 を選択します。
    3. アクション コラムで、署名 を選択して、ホストの Puppet 証明書を承認します。
    4. ホストに戻り、残りのブートストラップ処理が完了するのを確認します。
  3. Web UI で HostsAll hosts に移動し、そのホストが適切なホストグループに接続していることを確認します。
ホストに Katello エージェントがインストールされていない場合は、「Katello エージェントのインストール」 に進みます。

10.5.6. 詳細なブートストラップスクリプトの設定

ブートストラップスクリプトを使用した標準的なワークフローについては、手順10.11「ブートストラップスクリプトの実行」 に概説しています。このセクションでは、さらにいくつかの例を説明します。
Satellite 6 から別の Satellite 6 へのホストの移行
- force を指定してこのスクリプトを使用します。スクリプトは、以前の Satellite から katello-ca-consumer-* パッケージを削除し、新しい Satellite から katello-ca-consumer-* パッケージをインストールします。以下に例を示します。
# bootstrap.py --login=admin \
--server satellite6.example.com \
--location="Example Location" \
--organization="Example Organization" \
--hostgroup="Example Host Group" \
--activationkey=activation_key \
--force
Copy to Clipboard Toggle word wrap
Red Hat Network (RHN)または Satellite 5 から Satellite 6 へのホストの移行
ブートストラップスクリプトは、システムがレガシープラットフォームに登録されていることを示す指標として、/etc/syconfig/rhn/systemid が存在し、RHN の接続が有効であることを検出します。次にこのスクリプトは rhn-classic-migrate-to-rhsm を呼び出して RHN からシステムを移行します。監査上の理由で、デフォルトではシステムのレガシープロファイルは削除されません。レガシープロファイルを削除するには、use --legacy-purge および use- -legacy-login を使用して、プロファイルを削除する適切な権限を持つユーザーアカウントを指定します。プロンプトが表示されたらユーザーアカウントのパスワードを入力します。以下に例を示します。
# bootstrap.py --login=admin \
--server satellite6.example.com \
--location="Example Location" \
--organization="Example Organization" \
--hostgroup="Example Host Group" \
--activationkey=activation_key \
--legacy-purge \
--legacy-login rhn-user
Copy to Clipboard Toggle word wrap
Satellite 6 にホストを登録すると、Puppet 設定を省略します。
デフォルトでは、ブートストラップスクリプトを使用して、コンテンツ管理および設定管理に対してホストを設定します。既存の設定管理システムがあり、ホストに puppet をインストールしない場合は use --skip-puppet を使用します。以下に例を示します。
# bootstrap.py --login=admin \
--server satellite6.example.com \
--location="Example Location" \
--organization="Example Organization" \
--hostgroup="Example Host Group" \
--activationkey=activation_key \
--skip-puppet
Copy to Clipboard Toggle word wrap
コンテンツ管理専用としてホストを Satellite 6 に登録する。
システムをコンテンツホストとして登録し、プロビジョニングおよび設定管理機能を除外するには、use --skip-foreman を使用します。以下に例を示します。
# bootstrap.py --server satellite6.example.com \
--organization="Example Organization" \
--activationkey=activation_key \
--skip-foreman
Copy to Clipboard Toggle word wrap
ブートストラップスクリプトがコンシューマー RPM のダウンロードに使用する方法を変更します。
デフォルトでは、ブートストラップスクリプトは HTTP を使用してコンシューマー RPM (server.example.com/pub/katello-ca-consumer-latest.noarch.rpm)をダウンロードします。環境によっては、ホストと Satellite との間の HTTPS のみを許可することが望ましい場合があります。use --download-method を使用して、ダウンロードメソッドを HTTP から HTTPS に変更します。以下に例を示します。
# bootstrap.py --login=admin \
--server satellite6.example.com \
--location="Example Location" \
--organization="Example Organization" \
--hostgroup="Example Host Group" \
--activationkey=activation_key \
--download-method https
Copy to Clipboard Toggle word wrap
ホストの IP アドレスの Satellite への指定
インターフェイスが複数あるホスト、または 1 つのインターフェイスに IP アドレスが複数あるホストでは、IP アドレスの自動検出を無効にして、特定の IP アドレスを Satellite に指定する必要がある場合があります。use-- ip.以下に例を示します。
# bootstrap.py --login=admin \
--server satellite6.example.com \
--location="Example Location" \
--organization="Example Organization" \
--hostgroup="Example Host Group" \
--activationkey=activation_key \
--ip 192.x.x.x
Copy to Clipboard Toggle word wrap
ホストでのリモート実行の有効化
use-- rex and --rex-user を使用して、リモート実行を有効にし、指定したユーザーに必要な SSH キーを追加します。以下に例を示します。
# bootstrap.py --login=admin \
--server satellite6.example.com \
--location="Example Location" \
--organization="Example Organization" \
--hostgroup="Example Host Group" \
--activationkey=activation_key \
--rex \
--rex-user root
Copy to Clipboard Toggle word wrap
登録時にホストのドメインの作成
ホストレコードを作成するには、スクリプトを実行する前に、ホストの DNS ドメインが Satellite に存在している必要があります。ドメインが存在しない場合は、--add-domain を使用して追加します。以下に例を示します。
# bootstrap.py --login=admin \
--server satellite6.example.com \
--location="Example Location" \
--organization="Example Organization" \
--hostgroup="Example Host Group" \
--activationkey=activation_key \
--add-domain
Copy to Clipboard Toggle word wrap
ホストに任意の完全修飾ドメイン名(FQDN)を提供します。
ホストのホスト名が FQDN でない場合や、RFC 準拠していない場合(アンダースコアなどの文字が含まれている)には、ホスト名の検証の段階でスクリプトが失敗します。use-- fqdn を使用して、Satellite にレポートする FQDN を指定します。これを実行するには、hammer を使用して create_new_host_when_facts_are_uploadedcreate_new_host_when_report_is_uploaded を false に設定する必要があります。以下に例を示します。
# hammer settings set \
--name  create_new_host_when_facts_are_uploaded \
--value false
# hammer settings set \
--name  create_new_host_when_report_is_uploaded \
--value false
Copy to Clipboard Toggle word wrap
# bootstrap.py --login=admin \
--server satellite6.example.com \
--location="Example Location" \
--organization="Example Organization" \
--hostgroup="Example Host Group" \
--activationkey=activation_key \
--fqdn node100.example.com
Copy to Clipboard Toggle word wrap

10.6. ホストのグループの変更

以下の手順では、ホストのグループを変更する方法を示します。
  1. HostsAll hosts に移動します。
  2. 変更する必要のあるホストのチェックボックスを選択します。
  3. 画面右上の Select Action メニューから Change Group を選択します。新しいオプションウィンドウが開きます。
  4. アクションの選択 メニューから、ホストのグループを選択します。
  5. 送信 をクリックします。

10.7. ホストの環境の変更

以下の手順は、ホストの環境を変更する方法を示します。
  1. HostsAll hosts に移動します。
  2. 変更する必要のあるホストのチェックボックスを選択します。
  3. 画面右上の Select Action メニューから Change Environment を選択します。新しいオプションウィンドウが開きます。
  4. アクションの選択 メニューから、ホストの環境を選択します。
  5. 送信 をクリックします。

10.8. ホストの管理

以下の手順では、ホストのステータスを管理または管理解除に切り替える方法を説明します。ホストが managed に設定されている場合には、Satellite Server からネットワーク設定、ストレージ、リソース割り当てのパラメーターを調整できます。
デフォルトでは、Satellite がプロビジョニングするホストは管理されます。Satellite でサポートされていないオペレーティングシステムを使用するシステムの設定管理に関するレポートを取得する必要がある場合は、ホストを非マネージドにすることが推奨されます。
  1. HostsAll hosts に移動します。
  2. ホストを選択します。
  3. Edit をクリックします。
  4. ホストの 管理 または ホスト管理解除 をクリックして、ホストのステータスを変更します。
  5. 送信 をクリックして変更を保存します。
注記
ホストのステータスを unmanaged から managed に変更した場合は、ホストページで ビルド をクリックしてホストを再構築する必要があります。

10.9. ホストの特定組織への割り当て

以下の手順では、ホストを特定の組織に割り当てる方法を説明します。組織に関する一般的な情報および 設定方法は、サーバー 『管理ガイド の 組織、ロケーション、およびライフサイクル環境の』 設定 を参照してください
  1. HostsAll hosts に移動します。
  2. 変更する必要のあるホストのチェックボックスを選択します。
  3. 画面右上の Select Action メニューから Assign Organization を選択します。新しいオプションウィンドウが開きます。
  4. Select Organization メニューに移動し、ホストの組織を選択します。Fix Organization on Mismatch (組織の不一致についての修正)チェックボックスを選択します。
    注記
    ドメインまたはサブネットなど、ホストに関連付けるリソースがあるにもかかわらず、これらのリソースがホストの割り当て先の組織に割り当てられていない場合に、不一致が生じます。Fix Organization on Mismatch (組織の不一致についての修正)オプションを使用すると、このようなリソースが組織に追加されるので、このオプションは推奨の選択肢になります。一方、Fail on Mismatch (不一致により失敗)オプションを選択すると、常にエラーメッセージが生成されます。たとえば、実際には設定に不一致がない場合でも、別の組織にホストを再割り当てすると失敗します。
  5. 送信 をクリックします。

10.10. ホストの特定ロケーションへの割り当て

以下の手順では、ホストを特定のロケーションに割り当てる方法を説明します。ロケーションに関する一般的な情報および設定方法は、『Server Administration Guide』 の Locations を参照してください。
  1. HostsAll hosts に移動します。
  2. 変更する必要のあるホストのチェックボックスを選択します。
  3. 画面右上の Select Action メニューから、Assign Location を選択します。新しいオプションウィンドウが開きます。
  4. ロケーションの選択 メニューに移動し、ホストのロケーションを選択します。Fix Location on Mismatch (ロケーションの不一致についての修正)チェックボックスを選択します。
    注記
    ドメインまたはサブネットなど、ホストに関連付けるリソースがあるにもかかわらず、これらのリソースがホストの割り当て先の組織に割り当てられていない場合に、不一致が生じます。Fix Organization on Mismatch (組織の不一致についての修正)オプションを使用すると、このようなリソースが組織に追加されるので、このオプションは推奨の選択肢になります。一方、Fail on Mismatch (不一致により失敗)オプションを選択すると、常にエラーメッセージが生成されます。たとえば、実際には設定に不一致がない場合でも、別の組織にホストを再割り当てすると失敗します。
  5. 送信 をクリックして、ホストへのロケーションの割り当てを完了します。

10.11. 追加のネットワークインターフェイスの設定

Red Hat Satellite は、1 台のホストに対して複数のネットワークインターフェイスを指定することをサポートします。「ホストの作成」 で説明されているように新規ホストを作成する場合や、既存ホストを編集する場合に、これらのインターフェイスを設定することができます。
ホストに割り当てることのできるネットワークインターフェイスにはいくつかのタイプがあります。新規インターフェイスを追加する場合は、以下のいずれかを選択してください。
  • インターフェイス: 物理インターフェイスまたは仮想インターフェイスを追加で指定できます。作成できる仮想インターフェイスのタイプは 2 つあります。ホストが 1 つのインターフェイスを使用して複数の(仮想)ネットワークと通信する必要がある場合は VLAN を使用します。別のタイプの仮想インターフェイスは alias で、既存のインターフェイスにアタッチされた追加の IP アドレスです。詳細は 「仮想インターフェイスの追加」 または 「物理インターフェイスの追加」 を参照してください。
  • ボンド: ボンディングインターフェイスを作成します。NIC ボンディングは、複数のネットワークインターフェイスを 1 つのインターフェイスにバインディングして 1 つのデバイスと表示し、MAC アドレスを 1 つ持つ方法です。これにより、複数のネットワークインターフェイスが 1 つのネットワークインターフェイスとして動作し、帯域幅を同時に拡大し、冗長性を提供します。詳細は、「ボンディングインターフェイスの追加」 を参照してください。
  • BMC:ベースボード管理コントローラー (BMC)により、マシンの物理的な状態をリモートで監視および管理できます。BMC の詳細は 『Red Hat Satellite Installation Guide』 の Enabling Power Management on Managed Hosts を参照してください。BMC インターフェイスの設定に関する詳細は 「ベースボード管理コントローラー (BMC) インターフェイスの追加」 を参照してください。
注記
追加のインターフェイスには、デフォルトで Managed フラグが有効になっています。これは、新規インターフェイスが、選択したサブネットに関連付けられた DNS および DHCP Capsule Server によるプロビジョニング時に自動的に設定されることを意味します。これには、DNS および DHCP Capsule Server が適切に設定されたサブネットが必要です。ホストのプロビジョニングにキックスタートメソッドを使用する場合には、管理対象インターフェイスの設定ファイルはインストール後のフェーズで、/etc/sysconfig/network-scripts/ifcfg-$interface_id に自動的に作成されます。
注記
現在、仮想およびボンディングインターフェイスには物理デバイスの MAC アドレスが必要です。そのため、これらのインターフェイスの設定はベアメタルホストでのみ機能します。

10.11.1. 物理インターフェイスの追加

以下の手順は、物理インターフェイスをホストに追加する方法を示しています。

手順10.12 物理インターフェイスを追加する方法:

  1. HostsAll hosts を表示します。
  2. 編集 するホストの横にある 編集 をクリックします。
  3. Network タブで、Add Interface をクリックします。
  4. Type メニューで インターフェイス オプションが選択されている状態にします。
  5. 追加インターフェイスの MAC アドレス を指定します。この設定は必須です。
  6. デバイス ID (例: eth0 または eth1.1)を指定します。識別子は、ボンディングインターフェイスに使用されます( Attached devices フィールドでは、手順10.14「ボンディングインターフェイスの追加方法:」を参照)、VLAN およびエイリアス( Attached to フィールドでは 手順10.13「仮想インターフェイスを追加する方法:」)を参照してください。
  7. ホストの IP アドレスに関連付けられた DNS 名 を指定します。Satellite は、選択したドメイン(DNS A フィールド)に関連付けられた Capsule Server、および選択したサブネット(DNS PTR フィールド)に関連付けられた Capsule Server にこの名前を保存します。そのため、1 台のホストに複数の DNS エントリーを持たせることができます。
  8. Domain ドロップダウンメニューからドメインを選択します。ドメインを作成して管理するには、インフラストラクチャードメイン に 移動 ます。
  9. サブネット ドロップダウンメニューからサブネットを選択します。サブネットを作成して管理するには、インフラストラクチャーサブネット に 移動 ます。
  10. インターフェイスの IP アドレス を指定します。DHCP Capsule Server が割り当てられた管理対象インターフェイスでは、DHCP リースを作成するためにこの設定が必要です。DHCP が有効になっているマネージドインターフェイスは、IP アドレスの自動提案を提供します。
  11. インターフェイスを管理するかどうかを決定します。管理 のチェックボックスが選択されている場合には、プロビジョニング時に関連付けられた Capsule Server からインターフェイス設定がプルされ、DNS エントリーおよび DHCP エントリーが作成されます。キックスタートのプロビジョニングを使用している場合には、設定ファイルはインターフェイス用に自動的に作成されます。
  12. 仮想 NIC チェックボックス を選択して、仮想インターフェイスを作成します。詳細は、「仮想インターフェイスの追加」 を参照してください。
  13. OK をクリックしてインターフェイス設定を保存し、Submit をクリックしてホストに変更を適用します。

10.11.2. 仮想インターフェイスの追加

以下の手順では、ホストの追加の仮想インターフェイスを設定する方法を説明します。仮想インターフェイスには、VLAN またはエイリアスインターフェイスのいずれかを使用することができます。
エイリアスインターフェイスとは、既存のインターフェイスにアタッチされた追加の IP アドレスのことです。以下の点に留意してください。
  • エイリアスインターフェイスは割り当てられているインターフェイスから MAC アドレスを自動的に継承します。そのため、MAC アドレスを指定せずにエイリアスを作成することができます。
  • インターフェイスは、ブートモードを static に設定したサブネットに指定する必要があります。

手順10.13 仮想インターフェイスを追加する方法:

  1. HostsAll hosts を表示します。
  2. 編集 するホストの横にある 編集 をクリックします。
  3. Network タブで、Add Interface をクリックします。
  4. Type メニューで インターフェイス オプションが選択されている状態にします。
  5. 一般的なインターフェイス設定を指定します。適用できる設定オプションは、物理インターフェイスのオプションと同じです(「物理インターフェイスの追加」 を参照)。
    管理対象の仮想インターフェイスの MAC アドレス を指定し、プロビジョニング用の設定ファイルが適切に生成されるようにします。ただし、MAC アドレス は、管理対象ではない仮想インターフェイスには必要ありません。
    VLAN を作成する場合、Identifier フィールドに eth1.10 の形式で ID を指定します。エイリアスを作成する場合は、eth1:10 の形式で ID を使用します
  6. 仮想 NIC チェックボックスを選択します。仮想インターフェイスに固有の追加設定オプションがその形式に追加されます。
    • タグ: インターフェイスごとにタグを指定して、ネットワークの上位レベルのセグメント化を提供できます。空白のままにすると、管理対象インターフェイスは、このサブネットに VLAN ID が指定されている場合には、関連付けられたサブネットの VLAN ID からタグを継承します。このフィールドでユーザーが指定したエントリーは、エイリアスインターフェイスには適用されません。
    • 割り当て先: eth1 など、仮想インターフェイスの所属先となる物理インターフェイスの ID を指定します。この設定は必須です。
  7. OK をクリックして、インターフェイス設定を保存します。次に、送信 を クリックして、ホストへの変更を適用します。

10.11.3. ボンディングインターフェイスの追加

以下の手順は、ホストのボンディングインターフェイスを設定する方法を示しています。

手順10.14 ボンディングインターフェイスの追加方法:

  1. HostsAll hosts を表示します。
  2. 編集 するホストの横にある 編集 をクリックします。
  3. Network タブで、Add Interface をクリックします。
  4. Type メニューから Bond を選択します。タイプ固有の設定オプションがフォームに追加されます。
  5. 一般的なインターフェイス設定を指定します。適用できる設定オプションは、物理インターフェイスのオプションと同じです(「物理インターフェイスの追加」 を参照)。ボンディングインターフェイスは、識別子 フィールドの bond0 形式の ID を使用します。MAC アドレス フィールドに 1 つの MAC アドレスを指定する場合は十分です。
  6. ボンディングインターフェイスに固有の設定オプションを指定します。
    • モード : フォールトトレランスおよび負荷分散のポリシーを定義するボンドモードを選択します。個々のボンディングモードの簡単な説明は、表10.2「Red Hat Satellite で利用可能なボンディングモード」 を参照してください。
    • 割り当て 済みデバイス: 割り当てられたデバイスの ID のコンマ区切りの一覧を指定します。物理インターフェイスまたは VLAN を指定できます。
    • ボンドオプション: 設定オプションのスペース区切りリストを指定します(例: miimon=100)。ボンディングインターフェイスに指定できる設定オプションがいくつかあります。詳細は Red Hat Enterprise Linux 7 ネットワークガイド を 参照してください。
  7. OK をクリックして、インターフェイス設定を保存します。次に、送信 を クリックして、ホストへの変更を適用します。
Expand
表10.2 Red Hat Satellite で利用可能なボンディングモード
ボンディングモード説明
balance-rr 送受信は、ボンディングインターフェイスで順次行われます。
active-backup ボンディングインターフェイスの中で最初に利用可能になったものから送受信が行われます。アクティブなボンディングインターフェイスに障害がある場合に限り別のボンディングインターフェイスが使用されます。
balance-xor 送受信は選択されたハッシュポリシーに基づいて行われます。このモードでは、特定のピア用に宛先が指定されたトラフィックは常に同じインターフェイスで送信されます。
broadcast すべての送信はすべてのボンディングインターフェイスで行われます。
802.a3 同じ設定を共有するアグリゲーショングループを作成します。アクティブなグループのすべてのインターフェイスで送受信が行われます。
balance-tlb 送信トラフィックが各ボンディングインターフェイスの現在の負荷に応じて配分されます。
balance-alb 受信ロードバランシングは ARP (Address Resolution Protocol) ネゴシエーションにより実現されています。

10.11.4. ベースボード管理コントローラー (BMC) インターフェイスの追加

本セクションでは、ベースボード管理コントローラー (BMC)インターフェイスを、この機能をサポートするホストに設定する方法を説明します。

前提条件

次に進む前に、以下の前提条件を満たしていることを確認します。

  • BMC が Capsule Server で有効化されている。必要な場合は、手順10.15「既存の Capsule Server で BMC パワー管理を有効にする方法:」 を参照してください。
  • ipmitool パッケージがインストールされている。
  • ホストの MAC アドレス、IP アドレス、BMC インターフェイスのその他の詳細、およびこのインターフェイスの適切な認証情報を確認している。
    注記
    BMC インターフェイスが管理されている場合は、BMC インターフェイスの MAC アドレスのみが必要になります。これは、DHCP 予約を作成できるようにします。

手順10.15 既存の Capsule Server で BMC パワー管理を有効にする方法:

  1. 以下のオプションを指定した以下のコマンドを実行して、satellite-installer ルーチンを使用して Capsule Server の BMC 電源管理を設定します。
    # satellite-installer --foreman-proxy-bmc=true --foreman-proxy-bmc-default-provider=ipmitool
    Copy to Clipboard Toggle word wrap
  2. Capsule Server の機能を更新します。
    1. Satellite Web UI にログインし、InfrastructureCapsules に移動します。
    2. 更新が必要な機能がある Capsule Sever を特定します。右側のドロップダウンリストで、Refresh features をクリックします。機能 コラムの機能リストには、BMC が含まれているはずです。

手順10.16 BMC インターフェイスを追加する方法:

  1. HostsAll hosts を表示します。
  2. 編集 するホストの横にある 編集 をクリックします。
  3. Network タブで、Add Interface をクリックします。
  4. Type メニューから BMC を選択します。タイプ固有の設定オプションがその形式に追加されます。
  5. 一般的なインターフェイス設定を指定します。適用できる設定オプションは、物理インターフェイスのオプションと同じです(「物理インターフェイスの追加」 を参照)。
  6. BMC インターフェイスに固有の設定オプションを指定する方法:
    • ユーザー名パスワード: BMC で必要な認証情報を指定します。
    • プロバイダー: BMC プロバイダーを指定します。
  7. OK をクリックしてインターフェイス設定を保存し、Submit をクリックしてホストに変更を適用します。

10.12. ホストの削除

以下の手順では、Red Hat Satellite からホストを削除する方法を説明します。

手順10.17 ホストを削除する方法:

  1. HostsAll hosts または HostsContent Hosts をクリックします。
  2. 削除するホストを選択します。
  3. Select Action をクリックし、ドロップダウンメニューから Delete Hosts を選択します。
  4. 確認ポップアップボックスが表示されます。Yes を選択して、Red Hat Satellite からホストを完全に削除します。
警告
仮想マシンに関連付けられているホストのレコードが削除されている場合、仮想マシンも削除されます。このような状況で仮想マシンが削除されないようにするには、ハイパーバーザーから仮想マシンを削除せずに Satellite との関連付けを解除します。

手順10.18 仮想マシンをハイパーバイザーから削除せずに Satellite との関連付けを解除する方法:

  1. Satellite Web UI で、HostsAll Hosts に移動し、関連付けが解除されたホストの左側にあるチェックボックスを選択します。
  2. 確認ウィンドウで、以下を行います。
    1. オプションで、チェックボックスを選択して、今後のためにホストを保存します。
    2. 送信 をクリックして変更を保存します。

第11章 Satellite でのベアメタルホストの検出

Red Hat Satellite 6.2 には、Discovery プラグインがすでにインストールされている機能が同梱されています。Discovery プラグインを使用すると、プロビジョニングネットワーク上の不明なホストのベアメタルの自動検出が可能になります。これらの新規ホストは、シリアル ID、ネットワークインターフェイス、メモリー、およびディスク情報などの Facter が収集するクライアントアップロードシステムのファクトに基づいて Satellite Server および Puppet エージェントに登録されます。登録後、ホストは Satellite Web UI の Discovered Hosts ページに表示されます。その後、手動で(Web UI、CLI、または API を使用)、または事前定義された検出ルールを使用して自動的にプロビジョニングを開始できます。
Discovery プラグインは、プロビジョニングネットワークと Satellite Server インスタンスの両方に直接アクセスできる Satellite Capsule Server 経由で通信します。Satellite Server から直接ホストを検出することは可能ですが、Red Hat では以下のスキームを使用することを推奨します。
Satellite Server (Satellite Server Discovery plug-in) <--> Satellite Capsule (Satellite Capsule Discovery plug-in) <--> Discovered Host (Satellite Discovery image)
Copy to Clipboard Toggle word wrap
Satellite Discovery プラグインは 3 つの異なるコンポーネントで設定されています。
Satellite Server Discovery プラグイン
これは Satellite Server で実行され、検出されたホストと連携するための API および UI 機能を提供します。tfm-rubygem-foreman_discovery パッケージには、このプラグインが含まれます。
Satellite Capsule Server Discovery プラグイン
これは、プロビジョニングネットワークで検出されたホストと Satellite Server 間の通信プロキシーです。rubygem-smart_proxy_discovery パッケージには、このプラグインが含まれます。
Satellite Discovery イメージ
これは、初期のハードウェア情報を取得し、Satellite Server にチェックインするためにホスト上で PXE で起動した Red Hat Enterprise Linux ベースの最小オペレーティングシステムです。検出されたホストは、Anaconda で再起動されるまで Satellite Discovery イメージを実行し続け、プロビジョニングプロセスを開始します。foreman-discovery-image パッケージには、このイメージが含まれます。TFTP サービスを提供する Satellite Capsule Server にインストールしておく。

11.1. Satellite Discovery プラグインの設定

以下のセクションでは、Satellite Discovery プラグインを設定する方法および Satellite Server で PXE 起動テンプレートを準備する方法について説明します。

11.1.1. Satellite Discovery イメージのデプロイ

Satellite Discovery イメージを含むパッケージを、TFTP サービスを提供する Satellite Capsule Server (Satellite Server 自体ではない) にインストールします。
# yum install foreman-discovery-image
Copy to Clipboard Toggle word wrap
このパッケージには、Linux カーネルと、PXE ブートの検出されたホストに使用される起動可能な ISO ファイルとしての初期 RAM ディスクイメージが含まれます。以下のコマンドを実行して、パッケージの内容を調べます。これにより、以下のような出力が生成されます。
$ rpm -ql foreman-discovery-image
/usr/share/foreman-discovery-image
/usr/share/foreman-discovery-image/fdi-image-rhel_7-2.1.0-20150212.1.iso
Copy to Clipboard Toggle word wrap
このパッケージをインストールすると、ISO ファイルからカーネルおよびイメージを TFTP ディレクトリーに抽出し、イメージおよびカーネルの最新バージョンへのシンボリックリンクを作成します。PXE ブートプロビジョニングテンプレートのシンボリックリンクを使用して、foreman-discovery-image パッケージがアップグレードされるたびにテンプレートのバージョンを変更する必要はありません。以下に例を示します。
$ find /var/lib/tftpboot/boot
/var/lib/tftpboot/boot
/var/lib/tftpboot/boot/fdi-image-rhel_7-2.1.0-20150212.1-img
/var/lib/tftpboot/boot/fdi-image-rhel_7-2.1.0-20150212.1-vmlinuz
/var/lib/tftpboot/boot/fdi-image-rhel_7-img
/var/lib/tftpboot/boot/fdi-image-rhel_7-vmlinuz
Copy to Clipboard Toggle word wrap
上記の出力の最後の 2 行には、PXE ブートプロビジョニングテンプレートで使用するシンボリックリンクが含まれます。詳細は、「PXE 起動の設定」 を参照してください。
注記
現時点では、Red Hat Enterprise Linux 6 の Satellite 6 インストールであっても、Red Hat Enterprise Linux 7 Discovery イメージのみが提供されます。foreman-discovery-image パッケージのアップグレード中に検出されたホストがある場合は、すぐに再起動してイメージの更新されたバージョンを読み込みます。これは、Satellite 6 Web UI、CLI、または API を介して実行できます。

11.1.2. PXE 起動の設定

不明なホストがプロビジョニングネットワークで起動する場合、Satellite Server は、ローカルハードドライブから起動する 1 つのオプションを含む PXELinux ブートメニューを提供します。以下の手順では、ハードウェア検出を有効にするためにこの動作を変更する方法を説明します。これには、PXE Linux global default テンプレートで複数の変数を変更する必要があります。これらの変数の説明を以下に示します。
  • テンプレートの KERNEL および APPEND 行は、foreman-discovery-image パッケージのインストール時に作成されるシンボリックリンクを使用します( 「Satellite Discovery イメージのデプロイ」を参照)。URL は、/var/lib/tftpboot/ ディレクトリーに相対しています。APPEND パラメーターが 1 行で指定されていることを確認します。
  • proxy.type 変数は、proxy (推奨)または foreman に設定できます。変数が proxy に設定されている場合には、すべての通信は Satellite Capsule Server を経由します。変数が foreman に設定されると、通信は直接 Satellite Server に送信されます。本章の例では、proxy.typeプロキシー に設定されていることを前提としています。
  • proxy.url 変数は、proxy.type 設定に応じて、Satellite Capsule Server または Satellite Server の URL を指定します。HTTP および HTTPS スキームの両方がサポートされます。デフォルトのポートは、Satellite Capsule Server (proxy.type=proxy)にアクセスするための 9090、Satellite Server と直接通信する場合は 80 です(proxy.type=foreman)。
  • IPAPPEND 2 の設定により、プロビジョニングネットワークに接続されたインターフェイスが検出されます。このオプションが削除または変更されると、イメージは正常に起動しません。

手順11.1 PXE 起動を設定するには、以下を実行します。

  1. Satellite Web UI で、HostsProvisioning Templates に移動します。
  2. PXELinux global default テンプレートを編集します。次のメニューエントリーをテンプレートに追加します。
    LABEL discovery
    MENU LABEL Foreman Discovery
    MENU DEFAULT
    KERNEL boot/fdi-image-rhel_7-vmlinuz
    APPEND initrd=boot/fdi-image-rhel_7-img rootflags=loop root=live:/fdi.iso rootfstype=auto ro rd.live.image acpi=force rd.luks=0 rd.md=0 rd.dm=0 rd.lvm=0 rd.bootif=0 rd.neednet=0 nomodeset proxy.url=https://SATELLITE_CAPSULE_URL:9090 proxy.type=proxy
    IPAPPEND 2
    Copy to Clipboard Toggle word wrap
  3. ONTIMEOUT 変数を変更して、新しいメニューエントリーをデフォルトに設定します。
    ONTIMEOUT discovery
    Copy to Clipboard Toggle word wrap
  4. Provisioning Templates ページの上部にある Build PXE Default をクリックします。これにより、TFTP プロキシーが pxelinux.cfg/default ファイルを再書き込みするよう指示されます。デフォルトのテンプレートに変更が加えられるたびに、このステップを繰り返して、変更が TFTP Satellite Capsule Server にデプロイされるようにします。
上記の手順の代わりに、PXE ブートテンプレートから proxy.url 変数を省略することもできます。この場合、Discovery イメージは DNS 設定ファイルで x-foreman.tcp という名前の SRV レコードを検索します。この場合は、proxy.url 変数は proxy に設定する必要があります。DNS サーバーも適切に設定されている必要があります。たとえば、以下の設定ステートメントは、HTTPS で使用する Capsule Server を指定します。
_x-foreman._tcp SRV 0 5 9090 capsule
Copy to Clipboard Toggle word wrap
ここで 、Capsule は DNS 設定に含まれる Capsule Server の名前です。
注記
Satellite 6.2 では、ホストが検出可能な全サブネットに Capsule Server の URL を 1 つだけ指定できます。サブネットごとにテンプレートを使用できないので、すべてのネットワークで DNS エイリアス名を使用します。または SRV レコードを使用します。
重要
DHCP 設定からの DNS サーバーは、BOOTIF 変数で指定されたインターフェイスについてのみ考慮されます。BOOTIF PXE テンプレートの IPAPPEND 変数で自動的に設定されます。これは、システムに複数の NIC がある場合、DNS はブート元のインターフェイスに対してのみ機能することを意味します。

11.1.3. グローバル Discovery 設定の確認

Satellite Web UI で、Discovery プラグインに関連するグローバル設定を確認できます。管理設定 に移動し、検出 タブを開きます。注目すべき設定は次のとおりです。
discovery_organization, discovery_location
これらの変数は、検出されたホストを配置する場所を指定します。デフォルトでは、検出されたホストは、最初に作成した組織およびロケーションの下に自動的に配置されます。
discovery_fact
この変数は、検出されたホストの MAC アドレスを決定するために使用する受信ファクトを指定します。デフォルトでは、PXELinux BOOTIF カーネルコマンドラインオプションが使用されます。
discovery_auto
この変数は、指定されたルールに従って自動プロビジョニングを有効にします。デフォルトでは false に設定されます。Red Hat は、discovery_auto を有効にする前に、手動でプロビジョニングして設定をテストすることを推奨します。詳細は、「検出されたホストのプロビジョニング」 を参照してください。
discovery_fact_column
この変数により、検出されたホストのリストの追加行に Facter がレポートするファクトを追加できます。

11.2. Satellite Capsule Server Discovery プラグインの設定

foreman_url 設定が Satellite Capsule Server 設定ファイルに存在することを確認します。設定は次のように表示されます。
# grep foreman_url /etc/foreman-proxy/settings.yml
:foreman_url: https://satellite.example.com
Copy to Clipboard Toggle word wrap
satellite-installer コマンドはこの変数を自動設定しますが、Red Hat ではホストが正常に応答し、通信をブロックするファイアウォールのルールがないことを確認することを推奨します。

11.2.1. Discovery 用サブネットの設定

検出されたホストを持つすべてのサブネットが Satellite Capsule Server から通信できるように設定する必要があります。Satellite Web UI で、InfrastructureSubnets に移動し、ホストの検出を実行するために必要な各サブネットに必要な Capsule Server を選択し、これが Discovery Capsule Server に接続されていることを確認します。
Capsule Server で Discovery プラグインが有効になっていることを確認するには、インフラストラクチャー Capsule に 移動ます。Discovery プラグインが Capsule Server に関連付けられた機能の一覧に表示されるはずです。Refresh features をクリックして、リストが最新であることを確認します。

11.2.2. Discovery プラグインでの Hammer の使用

Discovery プラグインで hammer コマンドを使用するには、以下のように /etc/hammer/cli.modules.d/foreman_discovery.yml で Discovery プラグインを有効にする必要があります。
:foreman_discovery:
  :enable_module: true
Copy to Clipboard Toggle word wrap
hammer configuration directoriesを参照してください。[5] hammer が使用するファイルおよびディレクトリーの詳細は、以下を参照してください。

11.2.3. ユーザーの各種パーミッションの確認

最初の起動時に、Satellite Capsule Server Discovery プラグインは Discovery という名前のロールを作成します。このロールを管理者以外のユーザーに割り当て、Discovery プラグインの使用を許可することができます。または、execute _discovery パーミッションを既存のロールに割り当てます。ロールおよびパーミッションの詳細は、『Server Administration Guide』 の Creating and Managing Users を参照してください。

11.3. 検出されたホストのプロビジョニング

Satellite Server と Capsule Server の両方で Discovery プラグインを適切に設定した後に、ベアメタルホストを自動的に検出できます。これを実行するには、「PXE 起動の設定」 で説明されている PXE 設定テンプレートで設定したプロビジョニングネットワークでマシンを起動します。マシンは Satellite Server に自動的に登録され、Satellite Web UI の HostsDiscovered Hosts 一覧に表示されます。
検出されたホストは手動でプロビジョニングすることも、自動プロビジョニングを設定することもできます。

11.3.1. ホストの手動プロビジョニング

以下の手順では、Satellite Web UI で検出されたホストを手動でプロビジョニングする方法を説明します。

手順11.2 検出されたホストを手動でプロビジョニングする方法:

  1. HostsDiscovered Hosts に移動します。
  2. プロビジョニングするホストを選択し、プロビジョニング をクリックします。
  3. ホストの 編集 ページで、必要な詳細情報を入力し、保存 を クリックします。
ホスト設定の保存時に、Satellite は TFTP サーバーのホストの PXELinux ファイルを変更して、検出されたホストを再起動します。その後、選択したオペレーティングシステムのインストーラーを起動し、最後にインストールしたオペレーティングシステムを起動します。
既存の検出されたホストを再プロビジョニングする場合には、マシンからオペレーティングシステムを削除して、再起動します。ホストが 検出されたホスト ページに再び表示さ れます。

11.3.2. 検出されたホストの使用停止

Red Hat Satellite で特定のホストを管理する必要がなくなった場合は、ホストの使用を停止にして、検出されないようにする必要があります。

手順11.3 検出されたホストを使用停止にする方法:

  1. ホストをシャットダウンします。
  2. HostsDiscovered Hosts に移動します。
  3. Name 列で使用停止するホストを見つけ、該当する Edit ドロップダウンメニューから Delete を選択します。

11.3.3. ホストの自動プロビジョニング

Satellite 6.2 では、プロビジョニングされたホストに、ホストグループを割り当ててプロビジョニングを自動的にトリガーするプロビジョニングルールを定義できます。

手順11.4 プロビジョニングルールを作成する方法:

  1. ConfigureDiscovery rules に移動します。
  2. New Rule をクリックします。プロビジョニングルールの以下のパラメーターを指定します。
    • Name は、ルールの一覧に表示されるルールの名前です。この名前には、スペースまたは英数字以外の文字を含めることはできません。
    • 検索 は、検出されたホストと特定ルールを照合するために使用される検索ステートメントです。スコープ指定の検索構文を使用して、定義できます。スコープ指定の検索の使用例については、「スコープ指定の検索構文」 を参照してください。
    • ホストグループ は、プロビジョニングプロセスを開始する前に、一致するホストに割り当てるホストグループです。選択したホストグループに必要なパラメーターがすべて設定されていることを確認します。必要なパラメーターにはアスタリスク(*)が付いています。
    • ホスト 名 は、一致するホストに人間が判読できるホスト名を割り当てるパターンを定義します。空白のままにすると、ホスト名はデフォルトで "macMACADDRESS" の形式で割り当てられます。この例では、プロビジョニングテンプレートに使用されるものと同じ構文が使用されます。詳細および例は、「ホスト名のパターン」 を参照してください。
    • hosts 制限 は、ルールごとにプロビジョニングされるホストの最大数です。制限に達すると、ルールは 1 つ以上のホストが削除されるまで有効になりません。一般的なユースケースは、ホスト名や、エントリーごとにホストグループなどのプロビジョニングパラメーターを変更する必要がある場合の、サーバーのラックまたは行ごとにルールです。この値をゼロ(0)に設定して、制限なしを指定できます。
    • priority は、ルールの実行順序を指定します。値はゼロ以上である必要があります。値が小さいほど優先度が高くなります。2 つのルールの優先度が同じ場合は、最初に検出されたルールが適用されます。
    • Enabled は、ルールを一時的に有効または無効にするオプションを提供します。
  3. Submit をクリックしてルールを保存します。
デフォルトでは、Satellite はホストの自動検出を有効にしません。以下の手順では、discovery_auto 変数を有効にして、指定されたルールに基づいて自動プロビジョニングを行う方法を説明します。

手順11.5 自動プロビジョニングを有効にする方法:

  1. Satellite Web UI で、AdministerSettingsDiscovered に移動します。
  2. Name 列で を見つけ、その値を true に設定します。
  3. Save をクリックします。
ルールを定義した後に、Red Hat はホストの 自動検出 ボタンを使用して、ホストを検出 し、ルールを適用することを推奨します。これにより、グローバルオプションを有効にせずに自動プロビジョニングがトリガーされます。

11.3.4. スコープ指定の検索構文

このセクションでは、スコープ指定の検索構文を使用して、選択したパラメーターに従って検出されたホストをフィルタリングする方法を説明します。これは、自動プロビジョニングのルールを作成する場合に役立ちます(「ホストの自動プロビジョニング」 を参照)。
Satellite Web UI の検索フィールドは自動補完をサポートしているため、検索文字列の構築が容易になります。たとえば、検出された+ホスト ページで検索パターンを テストできます。以下は、一般的な検索クエリーの例です。
  • facts.architecture = x86_64
  • facts.bios_vendor ~ 'Dell*'
  • facts.macaddress = "aa:bb:cc:dd:ee:ff"
  • facts.macaddress_eth0 = "aa:bb:cc:dd:ee:ff"
  • facts.ipaddress_eth1 ~ "192.168.*"
  • facts.architecture ^ (x86_64,i386)
注記
スコープ指定検索のキャレット記号(^)は in (SQL と同じ用法)を意味し、正規表現に使用される "starts with" を意味しません。スコープ指定の検索演算子の全リストは、確認できます。 https://github.com/wvanbergen/scoped_search/blob/master/lib/scoped_search/query_language/tokenizer.rb
Satellite 6.2 では、すべてのファクトは文字列であるため、数値比較を行うことはできません。ただし、3 つの重要なファクトが抽出され、数値に変換されます。詳細は、表11.1「数値比較を可能にするファクト」 で説明されています。
Expand
表11.1 数値比較を可能にするファクト
検索パラメーター説明使用例
cpu_count CPU の数 cpu_count >= 8
disk_count 割り当てられたディスクの数 disk_count < 10
disks_size ディスク空き容量の合計 (MiB 単位) disks_size > 1000000

11.3.5. ホスト名のパターン

このセクションでは、自動プロビジョニングのルールを作成する際に使用できるホスト名パターンを一覧表示します(「ホストの自動プロビジョニング」 を参照)。
ターゲットホスト名のテンプレートパターンの構文は、プロビジョニングテンプレート(ERB)と同じになります。ドメインは自動的に追加されます。@host 属性の他に、ランダムな整数の rand() 関数を利用できます。以下に例を示します。
  • application-server-<%= rand(99999) %>
  • load-balancer-<%= @host.facts['bios_vendor'] + '-' + rand(99999) %>
  • wwwsrv-<%= @host.hostgroup.name %>
  • minion-<%= @host.discovery_rule.name %>
  • db-server-<%= @host.ip.gsub('.','-') + '-' + @host.hostgroup.subnet.name %>>
重要
ホスト名のパターンの作成時には、作成するホスト名が一意であることを確認してください。ホスト名は数字で始めることはできません。適切な方法として、Facter が提供する一意の情報(MAC アドレス、BIOS、またはシリアル ID など)を使用するか、またはホスト名をランダム化することが推奨されます。

11.3.6. コマンドラインでの Discovery プラグインの使用

hammer コマンドを使用して、検出に関連する特定のタスクを実行できます。hammer -h コマンドを実行して、設定を確認します。
$ hammer -h | grep discovery
 discovery                     Manipulate discovered hosts.
 discovery_rule                Manipulate discovered rules.
Copy to Clipboard Toggle word wrap
hammer discovery -h コマンドを使用して、利用可能なオプションを表示します。たとえば、以下のコマンドを使用して検出されたホストを再起動できます(ID が 130 であることを前提とします)。
$ hammer discovery reboot -id 130
Host reboot started
Copy to Clipboard Toggle word wrap

11.4. Discovery イメージの拡張

カスタムファクト、ソフトウェア、またはデバイスドライバーを使用して Satellite Discovery イメージを拡張することができます。イメージで使用できるように追加コードが含まれる圧縮されたアーカイブファイルを提供することもできます。
最初に、以下のディレクトリー構造を作成します。
.
├── autostart.d
│   └── 01_zip.sh
├── bin
│   └── ntpdate
├── facts
│   └── test.rb
└── lib
    ├── libcrypto.so.1.0.0
    └── ruby
        └── test.rb
Copy to Clipboard Toggle word wrap
ここでは、以下のようになります。
  • autostart.d ディレクトリーには、ホストが Satellite に登録される前の起動時に POSIX の順にイメージにより実行されるスクリプトが含まれています。
  • bin ディレクトリーは、$PATH 変数に追加され、ここにバイナリーファイルを配置して、autostart スクリプトで使用できます。
  • facts ディレクトリーは FACTERLIB 変数に追加され、カスタムファクトを設定して Satellite に送信できるようになります。
  • /bin のバイナリーファイルが正しく実行できるように、lib ディレクトリーは LD_LIBRARY_PATH 変数に、lib/ruby は RUBYLIB 変数に追加されます。
新規ディレクティブおよびオプションが既存の環境変数(PATH、LD_LIBRARY_PATH、RUBYLIB および FACTERLIB)に追加されます。スクリプトで明示的に何かへのパスを指定する必要がある場合、zip コンテンツはイメージの /opt/extension ディレクトリーに展開されます。
上記のディレクトリー構造を作成した後に、これを以下のコマンドで zip アーカイブにパッケージ化します。
zip -r my_extension.zip .
Copy to Clipboard Toggle word wrap
複数の zip ファイルを作成できますが、これらは Discovery イメージの同じ場所に抽出されるため、ファイル名が同じ場合に後の zip のファイルが先のファイルを上書きします。
Discovery イメージで使用される拡張子が認識されるように、検出イメージと共に zip ファイルを TFTP サーバーに配置してから、PXELinux テンプレートの APPEND 行を、パスが TFTP ルートに相対する fdi.zips オプションで更新します。たとえば、$TFTP/zip1.zip および $TFTP/boot/zip2.zip に 2 つのアーカイブがある場合は、以下の構文を使用します。
fdi.zips=zip1.zip,boot/zip2.zip
Copy to Clipboard Toggle word wrap
PXE テンプレートの更新に関する詳細は、「PXE 起動の設定」 を参照してください。

11.5. Satellite 検出のトラブルシューティング

検出されたホストの Satellite Web UI にマシンが正しく表示されない場合は、以下の設定領域を調べてエラーを切り分けます。
  • デフォルト PXE Linux テンプレートの再デプロイを試行します。
  • TFTP Capsule Server で pxelinux.cfg/default 設定ファイルを確認します。
  • ホスト、Capsule Server、および Satellite Server 間で適切なネットワーク接続があることを確認します。
  • デフォルトの PXE Linux テンプレートで proxy.url および proxy.type オプションを確認します。
  • DNS がそのイメージに対して正しく機能していることを確認するか、またはデフォルト PXE Linux テンプレートの proxy.url オプションで IP アドレスを使用します。
  • DHCP サーバーが IP アドレスを起動したイメージに適切に送信していることを確認します。
  • 検出されたホスト(または仮想マシン)に 500 MB 以上のメモリーがあることを確認します。メモリーが少なくなると、イメージをインメモリーで抽出する必要があるため、各種のカーネルパニックエラーがランダムに発生する可能性があります。
重要なシステムファクトを収集するには、discovery-debug コマンドを使用します。これにより、システムログ、ネットワーク設定、ファクトのリストなどの情報が標準出力に出力されます。通常のユースケースでは、scp コマンドでこの出力をリダイレクトしてコピーし、さらに調査します。
検出されたホストの最初の仮想コンソールは systemd ログ用に予約されます。特に役立つシステムログには、以下のようにタグが付けられます。
  • discover-host: 初回ファクトのアップロード
  • foreman-discovery: ファクトの更新、リモート再起動のコマンド
  • nm-prepare: NetworkManager を事前に定義する起動スクリプト
  • NetworkManager: ネットワーク情報
TTY2 以上を使用して、検出されたホストにログインします。root アカウントおよび SSH アクセスはデフォルトで無効にされますが、以下のカーネルコマンドラインのオプションを使用して、デフォルト PXELinux テンプレートの APPEND 行で、SSH の有効化および root パスワードの設定ができます。
fdi.ssh=1 fdi.rootpw=redhat
Copy to Clipboard Toggle word wrap

第12章 Satellite ホストでのジョブの実行

Red Hat Satellite は、ホストで任意のコマンドを実行する機能をサポートします。これは リモート実行 と呼ばれます。リモート実行は、Satellite Server でデフォルトで有効になっていますが、必要な全 Capsule Server で手動で有効にする必要があります。通信は Capsule Server 経由で行われるので、Satellite Server にはターゲットホストへの直接のアクセスが不要で、スケーリングしてホストの数を制御できます。リモート実行は、SSH サービスを使用します。これは、ターゲットホストで有効化され、実行されている必要があります。Capsule がターゲットホストのポート 22 にアクセスできることを確認します。
コマンドは、プロビジョニングテンプレートやパーティションテーブルと同様の方法でカスタマイズできます。デフォルトでいくつかのジョブテンプレートが含まれており、コマンドの実行に使用できます。「ジョブテンプレートのセットアップ」を参照してください。
注記
Capsule Server のベースシステムは Satellite Server の内部 Capsule のクライアントであるため、このセクションは Capsule Server を含む Satellite Server に接続されるホストのすべてのタイプに適用されます。
複数のホストでコマンドを一度に実行でき、デプロイメントに合わせてコマンドで変数を使用できます。変数値は、ホストファクト、スマートクラスパラメーター、スマート変数、またはホストパラメーターで埋めることができます。さらに、コマンドの実行時にテンプレートのカスタム値を指定できます。「ジョブの実行」を参照してください。
以下のリストは、リモート実行を使用する方法のいくつかの例を示しています。
  • ソフトウェアパッケージのインストール、更新、または削除
  • 設定管理エージェントのブートストラップ
  • Puppet、Salt または Chef 実行のトリガー
デフォルトでは、各 Capsule はリモート実行機能が無効にされた状態でインストールされます。Capsule Server でリモート実行を使用するには、これを有効にする必要があります。有効にするには、以下のコマンドを実行します。
# satellite-installer --scenario capsule --enable-foreman-proxy-plugin-remote-execution-ssh
Copy to Clipboard Toggle word wrap
リモート実行が Capsule Server で実行されていることを確認するには、Web UI で InfrastructureCapsules に移動します。これで、SSH が実行されている Features 列に Capsule Server が一覧表示されます。
デフォルトでは、Satellite Server は Katello Agent ではなくリモート実行を使用するように設定されています。必要に応じて、まずカスタムジョブテンプレートを作成し、リモート実行機能+移動 して、Web UI でこれらの新しいテンプレートを選択することで、これらの設定を変更できます。変更するアクションごとに、ラベルを選択し、使用するジョブテンプレートを選択します。

12.1. リモートコマンドのセキュアな接続の確立

リモート実行に使用される SSH キーは Capsule のインストール時に自動的に作成され、設定は /etc/foreman-proxy/settings.d/remote_execution_ssh.yml ファイルにあります。これには、以下のオプションが含まれます。
ssh_identity_file
SSH 鍵のロード元となるファイル。デフォルトでは /usr/share/foreman-proxy/.ssh/id_rsa_foreman_proxy に設定されます。
local_working_dir
リモート実行に必要なスクリプトを実行するために Satellite または Capsule で使用されるディレクトリー。デフォルトで、/var/tmp に設定されます。
remote_working_dir
リモート実行ジョブの実行に使用されるクライアントシステムのディレクトリー。デフォルトで、/var/tmp に設定されます。
注記
クライアントシステムの /var/ ボリュームまたはファイルシステムに noexec が設定されている場合は、remote_working_dir を変更します。そうしないと、スクリプトを実行できないためリモート実行ジョブが失敗します。
代替ディレクトリーを使用する必要がある場合は、新しいディレクトリー(例: new_place )を作成し、デフォルトのディレクトリーから SELinux コンテキストをコピーします。以下に例を示します。
# chcon --reference=/var new_place
Copy to Clipboard Toggle word wrap
SELinux ラベルの 『使用方法は、SELinux ユーザーおよび管理者のガイドの SELinux ラベルの維持』 セクションを参照し てください。
リモート実行のための SSH キーの配布
リモート実行を有効にするには、公開 SSH 鍵を Capsule から管理するホストに配布します。ホストで SSH サービスが有効化され、実行していることを確認します。ポート 22 にアクセスできるように、ネットワークまたはホストベースのファイアウォールを設定し、ポート 22 へのアクセスを有効化します。
Capsule からターゲットホストに公開鍵を配信する方法は 3 つあります。
  • キーを手動で配布するには、Capsule で以下のコマンドを実行します。
    # ssh-copy-id -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy.pub root@target.example.com
    Copy to Clipboard Toggle word wrap
    ここで、target.example.com はターゲットホストのホスト名になります。管理するターゲットホストごとに繰り返します。
    ターゲットホストにキーがコピーされたことを確認するには、Capsule で以下のコマンドを実行します。
    # ssh -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy root@target.example.com
    Copy to Clipboard Toggle word wrap
  • Satellite API を使用して公開鍵を Capsule から直接ダウンロードするには、それぞれのターゲットホストに対して以下のコマンドを実行します。
    # curl https://myproxy.example.com:9090/ssh/pubkey >> ~/.ssh/authorized_keys
    Copy to Clipboard Toggle word wrap
    ここで、myproxy.example.com は Capsule のホスト名を表します。
  • 新しくプロビジョニングされたホストに公開鍵を含めるには、次の行を含めるように、Kickstart default finish テンプレートなどを変更します。
    <%= snippet 'remote_execution_ssh_keys' %>
    Copy to Clipboard Toggle word wrap

12.2. リモートコマンドの設定および実行

リモートホストで実行するコマンドはジョブテンプレートとして定義する必要があります。ジョブテンプレートを定義した後はこれを複数回使用することができます。

12.2.1. ジョブテンプレートのセットアップ

Satellite は、ジョブの実行に使用できるデフォルトのジョブテンプレートを多数提供します。それらを、ホストジョブテンプレート で検索します。デフォルトのテンプレートで、ニーズに合わせてテンプレートがある場合は、「ジョブの実行」 に進みます。
デフォルトのテンプレートは、独自のテンプレートを作成するためのベースとして使用することもできます。デフォルトのジョブテンプレートは編集用にロックされているため、変更できるようにするには、まずテンプレートのクローンを作成する必要があります。

手順12.1 ジョブテンプレートの作成方法:

  1. HostsJob templates に移動します。
  2. 新規ジョブテンプレート をクリックします。別の方法として、既存のテンプレートを変更できます。アクション コラムで、ドロップダウンメニューから クローン を選択します。
  3. ジョブテンプレートを設定します。
    1. テンプレート タブ 、ジョブテンプレートの一意名を入力します。デフォルト を選択して、テンプレートをすべての組織およびロケーションで利用できるようにします。テンプレート エディター を使用して手動でテンプレートを挿入したり、参照 をクリックしてテキストファイルからアップロードしたりでき ます。テンプレートは Embedded Ruby (ERB)テンプレート構文を使用します。詳細は、「詳細テンプレートの作成」 を参照してください。電源アクションを実行するジョブを実行するには、高度なテンプレートが必要です。Power Action - SSH Default テンプレートをカスタムテンプレートに含める方法は、例12.4「テンプレートにパワー操作を組み込む」 を参照してください。
    2. ジョブタブでは、ジョブ カテゴリーを定義できます(独自の定義、または 表12.1「デフォルトのジョブテンプレートカテゴリー」に記載のデフォルトカテゴリーから選択したり、実効ユーザーから選択したりできます。これらの設定は、ジョブの呼び出し時にも設定できます( 手順12.2「リモートジョブの実行方法:」を参照)。テンプレートコマンドの入力パラメーターを定義することも可能です。その後、これらのパラメーターは、ジョブの実行時に要求されます。
    3. 残りのタブでは、テンプレートのタイプ、組織およびロケーションの設定、およびテンプレート履歴の表示を実行できます。
  4. 送信 をクリックします。ページが更新されると、新しいテンプレートがジョブテンプレートのリストに表示されるはずです。
重要
ホストの編集ページの パラメーター タブで表示されるパラメーターのみが、ジョブテンプレートの入力パラメーターとして使用できる点にご留意ください。
Expand
表12.1 デフォルトのジョブテンプレートカテゴリー
ジョブテンプレートのカテゴリー
説明
Packages パッケージ関連のアクションを実行するためのテンプレートです。デフォルトで、インストール、更新、および削除アクションが含まれています。
Puppet ターゲットホストで Puppet ホストを実行するためのテンプレートです。
Power パワー関連のアクションを実行するためのテンプレートです。デフォルトで、再起動およびシャットダウンアクションが含まれます。
Commands リモートホストでカスタムコマンドを実行するためのテンプレートです。
Services サービス関連のアクションを実行するためのテンプレートです。デフォルトで、開始、停止、再起動、およびステータスアクションが含まれます。
Katello コンテンツ関連のアクションを実行するためのテンプレートです。これらのテンプレートは主として Satellite Web UI の各種の場所 (たとえば、コンテンツホストの一括操作のための UI など) で使用されますが、エラータのインストールなどの各種操作を実行するために個別に使用できます。

例12.1 restorecon テンプレートの作成

この例は、Run Command - restorecon というテンプレートを作成する方法を示します。これは、ターゲットホストで選択したディレクトリー内の全ファイルに対して、デフォルトの SELinux コンテキストを復元します。
  1. HostsJob templates に移動します。新規ジョブテンプレート をクリックします。
  2. 名前 フィールドに Run Command - restorecon を挿入します。デフォルト を選択して、テンプレートをすべての組織で利用できるようにします。以下のテキストを テンプレートエディター に追加します。
    restorecon -RvF <%= input("directory") %>
    Copy to Clipboard Toggle word wrap
    & lt;%= input ("directory")%> の文字 列は、ジョブの呼び出し時にユーザー定義のディレクトリーに置き換えられます。
  3. Job タブで、以下のアクションを実行します。
    1. ジョブカテゴリー を Commands に設定します。
    2. 入力を追加 をクリックして、ジョブのカスタマイズを可能にします。名前 フィールドに ディレクトリー を挿入します。入力する名前は、テンプレートエディターで指定された値と一致する必要があります
    3. 必須 をクリックし、ユーザーがパラメーターを指定しなければコマンドが実行しないようにします。
    4. 入力 タイプ ドロップダウンリストから ユーザー入力 を選択します。また、ジョブの呼び出し中に表示される Description (例: restorecon の Target directory )も提供します。
  4. 送信 をクリックします。
このテンプレートに基づいてジョブを実行する方法は、例12.2「複数のホストでの restorecon テンプレートの実行」 を参照してください。

12.2.2. ジョブの実行

このセクションでは、1 つ以上のホストに対してジョブテンプレートに基づくジョブを実行する方法を説明します。

手順12.2 リモートジョブの実行方法:

  1. HostsAll hosts に移動し、ジョブのターゲットホストを選択します。検索フィールドを使用してホストリストを絞り込むことができます。
  2. 画面右上の Select Action メニューから Run Job を選択します。これにより、Job invocation ページに移動します。あるいは、ホスト 1 つだけを対象にしている場合は、その名前 をクリックして、ホスト情報ページで ジョブの実行 を クリックします。Run ボタンを使用して ジョブテンプレートページからもジョブ を呼び出すことができます。
  3. ジョブ呼び出し ページで、主なジョブ設定を定義します。
    1. 使用する Job category および Job template を選択します。これらの設定は必須です。
    2. オプションで、ブックマーク リストに保存された検索文字列を選択し、ターゲットホストを指定します。
    3. 必要に応じて、検索クエリー を挿入して、ターゲットホストをさらに制限します解決 行には、クエリーの影響を受けるホストの数が表示されます。更新ボタンを押して、クエリー変更後の数を再計算します。プレビューアイコンには、ターゲットホストが一覧表示されます。
    4. 残りの設定は、選択したジョブテンプレートによって異なります。カスタムパラメーターをテンプレートに追加する方法は、手順12.1「ジョブテンプレートの作成方法:」 を参照してください。
  4. Display advanced fields をクリックして、ジョブの詳細設定を表示します。一部の詳細設定はジョブテンプレートによって異なります。以下は一般的な設定です。
    • 実効ユーザー は、ジョブを実行するためにユーザーを定義します。デフォルトは SSH ユーザーです。
    • 同時実行レベル は一度に実行するジョブの最大数を定義します。これにより、多数のホストでジョブを実行する場合に、システムのリソースに負荷が過剰にかかるのを防ぐことができます。
    • タイムスパン は、ジョブが終了していない場合は、ジョブの強制終了までの間隔(秒単位)を定義します。以前のタスクが終了するまで時間がかかりすぎているなど、定義した間隔で起動できなかったタスクはキャンセルされます。
    • クエリーのタイプは、検索クエリー が評価されるタイミングを定義します。これは、スケジュールされているタスクに対してクエリーが常に最新の状態に保つのに役立ちます。
    同時実行レベルタイムスパン 設定を使用すると、インフラストラクチャーハードウェアとニーズに合わせてジョブの実行を調整することができます。
  5. ジョブをすぐに実行する場合は、スケジュール今すぐ実行 に設定されていることを確認します。さらに、1 回限りのジョブを未来の日付で定義したり、定期的なジョブを設定することもできます。定期的なジョブについては、開始日と終了日、実行回数と頻度を定義できます。また cron 構文を使用して繰り返しを定義することもできます。cron の詳細は、Red Hat Enterprise Linux 7 『System Administrator's Guide』 の Automating System Tasks セクションを参照してください。
  6. 送信 をクリックします。これにより Job Overview ページが表示され、ジョブの完了時にはジョブのステータスも表示されます。

例12.2 複数のホストでの restorecon テンプレートの実行

以下の例では、例12.1「restorecon テンプレートの作成」 で作成したテンプレートに基づいて、複数のホストでジョブを実行する方法を示します。このジョブは、/home/ ディレクトリー下のすべてのファイルで SELinux コンテキストを復元します。
  1. HostsAll hosts に移動し、ターゲットホストを選択します。Select Action ドロップダウンリストから Run Job を選択します。
  2. ジョブ呼び出し ページで、Commands ジョブカテゴリーを選択し、Run Command - restorecon ジョブテンプレートを選択します。
  3. ディレクトリー フィールドに /home と入力します。
  4. スケジュールExecute now に設定します。
  5. 送信 をクリックします。ジョブ呼び出し ページに移動します。ここでジョブ 実行のステータスを監視できます。

12.2.3. ジョブの監視

実行中のジョブの進捗を監視できます。これは、トラブルシューティングが必要になる場合に役立ちます。

手順12.3 ジョブの監視方法:

  1. ジョブのページに移動します。このページには、Execute now が設定されているジョブをトリガーすると自動的に表示されます。スケジュールされた ジョブ+監視 に移動し、検査するジョブ実行を選択します。
  2. ジョブページで、ホスト タブをクリックします。これにより、ジョブが実行しているホストのリストが表示されます。
  3. ホスト コラム で、検査するホストの名前をクリックします。これにより、ジョブ の実行をリアルタイムで監視できる コマンドの詳細 ページが表示されます。
  4. いつでも ジョブに戻る をクリックして、ジョブの詳細 ページに戻ることができます。

12.2.4. 詳細テンプレートの作成

ジョブテンプレートの作成時に、テンプレート エディター フィールドに既存のテンプレートをインポートできます。これは レンダリング と呼ばれます。こうすることで、テンプレートを組み合わせたり、一般的なテンプレートからより具体的なテンプレートを作成したりできます。
以下のテンプレートを使用してデフォルトのテンプレートを組み合わせ、Red Hat Enterprise Linux システムに httpd サービスをインストールして起動できます。
<%= render_template 'Package Action - SSH Default', :action => 'install', :package => 'httpd' %>
<%= render_template 'Service Action - SSH Default', :action => 'start', :service_name => 'httpd' %>
Copy to Clipboard Toggle word wrap
上記のテンプレートはレンダリングされるテンプレートのパラメーター値を直接指定します。input() メソッドを使用して、ユーザーがジョブ実行時にレンダリングされたテンプレートへの入力を定義できるようにすることもできます。たとえば、以下の構文を使用できます。
<%= render_template 'Package Action - SSH Default', :action => 'install', :package => input("package") %>
Copy to Clipboard Toggle word wrap
上記のテンプレートを使用して、レンダリングされたテンプレートからパラメーター定義をインポートする必要があります。これを行うには、Jobs タブに移動し、Add Foreign Input Set をクリックし、Target template ドロップダウンリストからレンダリングされたテンプレートを選択します。すべてのパラメーターをインポートするか、コンマ区切りのリストを指定することができます。

例12.3 restorecon テンプレートのレンダリング

この例は、 で作成される Run command - restorecon テンプレートから派生するテンプレートを作成する方法を示しています。このテンプレートはジョブ実行時にユーザー入力を必要としません。ターゲットホストの /home/ ディレクトリー下のすべてのファイルに SELinux コンテキストが復元されます。
「ジョブテンプレートのセットアップ」 の説明に従って新しいテンプレートを作成し、Template editor 画面で以下の文字列を指定します。
<%= render_template("Run Command - restorecon", :directory => "/home") %>
Copy to Clipboard Toggle word wrap

例12.4 テンプレートにパワー操作を組み込む

以下の例では、再起動などのパワー操作を実行するためのジョブテンプレートをセットアップする方法を示します。この手順は、Satellite が再起動時に切断の例外をエラーとして解釈するのを防ぐため、ジョブのリモート実行が正常に機能します。
「ジョブテンプレートのセットアップ」 の説明に従って新しいテンプレートを作成し、Template editor 画面で以下の文字列を指定します。
<%= render_template("Power Action - SSH Default", :action => "restart") %>
Copy to Clipboard Toggle word wrap

12.3. グローバル設定

Satellite のリモート実行機能は、動作を設定するために使用できる数多くのグローバル設定を提供します。これらについては、表12.2「リモート実行用のグローバル設定」 に一覧表示されます。これらの設定を確認して更新するには、AdministerSettings に移動し、Remote Execution タブをクリックします。
Expand
表12.2 リモート実行用のグローバル設定
パラメーター名
説明
remote_execution_effective_user
これは、任意のジョブに対するデフォルトの実効ユーザーです。ジョブが実行されると、それに応じてプロセスの実効ユーザーが変更されます(例:sudo)。このオプションはジョブテンプレートおよびジョブ呼び出しごとにオーバーライドできます。
remote_execution_effective_user_method
ターゲットホストで実効ユーザーを設定するために使用するメソッドを指定します。現在、su と sudo のみがサポートされています。
remote_execution_fallback_proxy
リモート実行が設定された Capsule をホストを検索します。これは、ホストにサブネットがない場合、またはサブネットにリモート実行が有効にされた Capsule がない場合に役立ちます。
remote_execution_global_proxy
ホストに割り当てられた Capsule 外にあるリモート実行 Capsule を検索します。ロケーションまたは組織が有効な場合、検索はホストの組織またはロケーションに限定されます。
remote_execution_ssh_user
Capsule が SSH でターゲットに接続する間に使用するデフォルトのユーザー。remote_execution_ssh_user 変数を設定して、ホストごとに上書きできます。
これは、ホスト、ホストグループ、オペレーティングシステム、ドメイン、ロケーション、または組織で設定できます。これは、remote_execution_effective_user とは異なるユーザーになることもあります。
remote_execution_sync_templates データベースのシード処理時にジョブテンプレートをディスクと同期させるかどうかを定義します。
重要
/etc/foreman/settings.yaml 設定ファイルでグローバルパラメーターを設定できますが、このファイルへの手動変更は、次に satellite-installer を実行するときに上書きされます。そのため、Red Hat は Web UI でこれらのパラメーターを変更することを推奨します。または、コンソールから foreman-rake config コマンドを使用します。

12.3.1. リモート実行用の Capsule の選択

リモート実行では、Capsule Server がホストで指定のジョブを実行する必要があります。デフォルトでは、リモート実行プロバイダー機能が有効になっているホストの組織およびロケーション内の Capsule は、これらのジョブを実行 できると見なされます。remote_execution_global_proxy 変数を false に設定すると、この動作を無効にできます。これは、ネットワーク分離が可能なため、すべての Capsule を使用できない、より複雑な環境で必要になる場合があります。この設定では、Capsule のプールを各サブネットに割り当て、ジョブ全体で負荷を分散できます。
または、remote_execution_fallback_proxy 変数を true に設定して、フォールバックモードを有効にすることもできます。この設定では、Capsule にリモート実行も設定されている場合、リモート実行は Puppet マスターなどのホストに関連付けられた Capsule を使用します。

12.4. リモート実行用のパーミッションの委任

ターゲットにするホストを含め、インフラストラクチャー内で実行するジョブとそれを実行するユーザーを制御できます。リモート実行機能は 2 つの組み込みロールを提供します。
  • Remote Execution Manager: このロールは、すべてのリモート実行機能および機能性へのアクセスを許可します。
  • Remote Execution User: このロールは、ジョブの実行のみを許可します。ジョブテンプレートを変更するパーミッションは提供されません。
Remote Execution User (リモート実行ユーザー) ロールのクローンを作成し、そのフィルターをカスタマイズして詳細度を高めることができます。view_job_templates パーミッションでフィルターを調整する場合、ユーザーは一致するジョブテンプレートに基づくジョブのみを確認し、トリガーすることができます。view_hosts パーミッションおよび view_smart_proxies パーミッションを使用すると、ロールに表示されるホストまたは Capsule を制限できます。
execute_template_invocation パーミッションは、ジョブの実行が開始する直前に確認される特殊なパーミッションです。このパーミッションは、特定のホストで実行できるジョブテンプレートを定義します。これにより、パーミッションの指定時に詳細度をさらに高めることができます。ロールおよびパーミッションの使用に関する詳細は、『Server Administration Guide』 の Creating and Managing Roles を参照してください。
以下の例は、execute_template_invocation パーミッションのフィルターを示しています。
name = Reboot and host.name = staging.example.com
name = Reboot and host.name ~ *.staging.example.com
name = "Restart service" and host_group.name = webservers
Copy to Clipboard Toggle word wrap
上記の例の最初の行により、ユーザーは選択した 1 つのホストで Reboot テンプレートを実行できます。2 番目の行は、.staging.example.com で終わる名前を持つホストのプールを定義します。3 番目の行はテンプレートをホストグループにバインドします。
注記
ユーザーに割り当てるパーミッションは時間の経過と共に変更されます。ユーザーに将来実行するスケジュールされたジョブがあり、パーミッションが変更された場合、パーミッションはジョブ実行の直前にチェックされるため、実行が失敗する可能性があります。

第13章 ホストコレクションの設定

Host Collections application タブは、管理者が以下を実行できるシステム管理ツールです。
  • ホストのコレクションへの追加。
  • パッケージやエラータ、またはパッケージグループをホストコレクションの全ホストメンバーに一括インストール。
  • 特定のパッケージやエラータ、または特定のパッケージグループの全ホストメンバーへの更新。

13.1. ホストコレクションの作成

以下の手順では、ホストコレクションから作成する方法を示します。

手順13.1 ホストコレクションの作成方法:

  1. HostsHost Collections をクリックします。
  2. 新規ホストコレクション をクリックします。
  3. ホストコレクションの名前と説明を追加します。
  4. Unlimited Content Hosts の選択を解除して、グループに許可されるホストの最大数を指定します。それ以外の場合は、無制限のホストがホストコレクションに参加できるようにチェックしたままにします。
  5. Save をクリックします。

13.2. ホストのホストコレクションへの追加

以下の手順では、ホストをホストコレクションに追加する方法を示します。

前提条件

ホストコレクションに追加するために、ホストを Red Hat Satellite に登録しておく。ホストを登録する方法は、「Registration」 を参照してください。

手順13.2 ホストコレクションへのホストの追加方法:

  1. HostsHost Collections をクリックします。
  2. ホストの追加先となるホストコレクションをクリックします。
  3. ホスト タブで 追加 サブタブを選択します。
  4. テーブルから追加するホストを選択し、選択項目の 追加 をクリックします

13.3. コンテンツのホストコレクションへの追加

以下の手順は、Red Hat Satellite でコンテンツをホストコレクションに追加する方法を示しています。

13.3.1. パッケージのホストコレクションへの追加

以下の手順では、パッケージをホストコレクションに追加する方法を示します。
前提条件
  • この手順を実行する前に、追加予定のコンテンツを既存のリポジトリーの 1 つで利用できるようにしておく。または追加しておく。
  • ホストの割り当て先の環境にコンテンツをプロモートしておく。

手順13.3 ホストコレクションへのパッケージの追加方法:

  1. HostsHost Collections をクリックします。
  2. パッケージの追加先となるホストコレクションをクリックします。
  3. コレクションの各種 アクション タブで、パッケージのインストール、削除、および更新 をクリックします。
  4. すべてのパッケージを更新するには、すべてのパッケージの 更新 ボタンを クリックして、デフォルトメソッドを使用します。または、ボタン右側のドロップダウンアイコンを選択して、使用するメソッドを選択します。via remote execution - customize first メニューエントリーを選択すると、Job invocation ページに移動します。ここでアクションをカスタマイズすることができます。
  5. 必要に応じて、ラジオボタン パッケージ または パッケージグループ を選択します。
  6. パッケージまたはパッケージグループの名前をフィールドに指定します。次に、以下をクリックします。
    • install-: デフォルトメソッドを使用して、新規パッケージを インストール します。または、ボタンの右側にあるドロップダウンアイコンを選択して、使用するメソッドを選択します。via remote execution - customize first メニューエントリーを選択すると、Job invocation ページに移動します。ここでアクションをカスタマイズすることができます。
    • Update: デフォルトメソッドを使用して、ホストコレクションの既存のパッケージを更新します。または、ボタンの右側にあるドロップダウンアイコンを選択して、使用するメソッドを選択します。via remote execution - customize first メニューエントリーを選択すると、Job invocation ページに移動します。ここでアクションをカスタマイズすることができます。

13.3.2. エラータのホストコレクションへの追加

以下の手順では、エラータをホストコレクションに追加する方法を示します。
前提条件
  • 追加するエラータは既存リポジトリーのいずれかで利用可能であるか、リポジトリーにない場合は、この手順を開始する前にリポジトリーに追加しておく必要がある。
  • エラータはホストの割り当てられる環境にプロモートする必要がある。

手順13.4 ホストコレクションへのエラータの追加方法:

  1. HostsHost Collections をクリックします。
  2. エラータの追加先となるホストコレクションを選択します。
  3. コレクションの各種アクション タブで、エラータのインストール をクリックします。
  4. ホストコレクションに追加するエラータを選択し、選択を インストール ボタンをクリックして、デフォルトメソッドを使用します。または、ボタン右側のドロップダウンアイコンを選択して、使用するメソッドを選択します。via remote execution - customize first メニューエントリーを選択すると、Job invocation ページに移動します。ここでアクションをカスタマイズすることができます。

13.4. ホストコレクションからのコンテンツの削除

以下の手順では、パッケージをホストコレクションから削除する方法を示します。

手順13.5 ホストコレクションからのコンテンツの削除方法:

  1. HostsHost Collections をクリックします。
  2. パッケージを削除するホストコレクションをクリックします。
  3. コレクションの各種 アクション タブで、パッケージのインストール、削除、および更新 をクリックします。
  4. 必要に応じて、ラジオボタン パッケージ または パッケージグループ を選択します。
  5. パッケージまたはパッケージグループの名前をフィールドに指定します。
  6. 削除 ボタンをクリックし、デフォルトメソッドを使用するパッケージまたはパッケージグループを削除します。または、ボタンの右側にあるドロップダウンアイコンを選択して、使用するメソッドを選択します。via remote execution - customize first メニューエントリーを選択すると、Job invocation ページに移動します。ここでアクションをカスタマイズすることができます。

13.5. ホストコレクションのライフサイクル環境またはコンテンツビューの変更

以下の手順では、ホストコレクションの割り当てられたライフサイクル環境またはコンテンツビューを変更する方法を示します。

手順13.6 ホストコレクションのライフサイクル環境またはコンテンツビューを変更する方法:

  1. HostsHost Collection をクリックします。
  2. ライフサイクル環境またはコンテンツビューを変更する必要のあるホストコレクションを選択します。
  3. コレクションの各種 アクション タブで、割り当て済みのライフサイクル環境またはコンテンツビューの変更 をクリックします。
  4. ホストコレクションに割り当てるライフサイクル環境を選択します。
  5. 必要なコンテンツビューをドロップダウンリストから選択します。
  6. 割り当て をクリックします。
    注記
    変更が反映するには約 4 時間かかります。ホストで変更を直ちに反映させるには、以下のコマンドを実行します。
    # subscription-manager refresh
    Copy to Clipboard Toggle word wrap
    リモート実行を使用すれば、複数のホストで同時にこのコマンドを実行できます。

13.6. ホストコレクションからのホストの削除

以下の手順では、ホストをホストコレクションから削除する方法を示します。

手順13.7 ホストコレクションからのホストの削除方法:

  1. HostsHost Collections をクリックします。
  2. 必要なホストコレクションを選択します。
  3. ホスト タブで、一覧表示/削除 サブタブを選択します。
  4. ホストコレクションから削除するホストを選択し、選択項目の 削除 をクリックします

13.7. ホストコレクションの削除

以下の手順では、ホストコレクションを削除する方法を示します。

手順13.8 ホストコレクションの削除方法:

  1. HostsHost Collections をクリックします。
  2. 削除するホストコレクションを選択します。
  3. 削除 をクリックします。警告ボックスが表示されます。
    Are you sure you want to remove host collection Host Collection Name?
    Copy to Clipboard Toggle word wrap
  4. 削除 をクリックします。

13.8. ホストコレクションのクローン作成

以下の手順では、ホストコレクションのクローンを作成する方法を示します。

手順13.9 ホストコレクションのクローン作成方法:

  1. HostsHost Collections をクリックします。
  2. 左側のパネルで、クローンを作成するホストコレクションをクリックします。
  3. コレクションのコピー をクリックします。
  4. クローン作成されたコレクションの名前を指定します。
  5. Create をクリックします。

13.9. ホストコレクションの詳細の確認

以下の手順では、ホストコレクションの詳細を確認する方法を説明します。

手順13.10 ホストコレクションの詳細を確認するには、以下を実行します。

  1. HostsHost Collections をクリックします。
  2. 確認するホストコレクションを選択し、Details タブに移動します。

付録A テンプレート作成の参照

Embedded Ruby (ERB)は、Ruby コードとプレーンテキストを統合するテンプレートをもとに、テキストファイルを生成するためのツールです。Red Hat Satellite は、プロビジョニングテンプレート (「Provisioning Templates」 )で ERB 構文を使用します( 『Red Hat Satellite Provisioning Guide』のプロビジョニングテンプレートの 作成 および リモート実行 ジョブ テンプレート( 12章Satellite ホストでのジョブの実行 )、パーティションテーブルこのセクションでは、ERB テンプレートで使用可能な Satellite 固有の機能と変数を使用例と併せて概説します。Red Hat Satellite が提供するデフォルトのテンプレート(ホストプロビジョニングテンプレート、ホスト ジョブテンプレート )には、ERB 構文の適切な例も含まれている点にご留意ください。
ホストのプロビジョニング時またはリモートジョブの実行時に、ERB のコードが実行し、変数がホスト固有の値に置き換えられます。このプロセスは レンダリング と呼ばれています。Satellite Server ではセーフモードのレンダリングオプションがデフォルトで有効になっており、これにより、有害なコードがテンプレートから実行されないようにすることができます。

A.1. ERB テンプレートの作成

以下は ERB 構文を要約したポイントになります。
  • <% %&gt; - ERB テンプレート内に Ruby コードを囲むマークです。コードはテンプレートのレンダリング時に実行されます。これには Ruby の制御フロー構造と、Satellite 固有の関数および変数を含めることができます。以下に例を示します。
    <% if @host.operatingsystem.family == "Redhat" && @host.operatingsystem.major.to_i > 6 %>
    systemctl <%= input("action") %> <%= input("service") %>
    <% else %>
    service <%= input("service") %> <%= input("action") %>
    <% end -%>
    Copy to Clipboard Toggle word wrap
  • <%= %&gt; - コード出力はテンプレートに挿入されます。これは変数の置き換えに便利です。以下に例を示します。
    echo <%= @host.name %>
    Copy to Clipboard Toggle word wrap
  • <% -%>, <% = -%>: デフォルトでは、行末で閉じられている場合に、改行文字が Ruby ブロックの後に挿入されます。この動作を抑制するには、囲んでいるマークを変更します。たとえば、以下のテンプレートです。
    curl <%= @host.ip -%>
    /mydir
    Copy to Clipboard Toggle word wrap
    上記のテンプレートは以下のようにレンダリングされます。
    curl <%= @host.ip %>/mydir
    Copy to Clipboard Toggle word wrap
    これはレンダリングされるテンプレートの行数を減らすために使用されます (Ruby 構文で許可される場合)。
  • <%# %&gt; - テンプレートのレンダリング中に無視されるコメントを囲むマーク:
    <%# A comment %>
    Copy to Clipboard Toggle word wrap

A.2. ERB テンプレートのトラブルシューティング

Satellite Web UI では、特定ホストに関するテンプレートのレンダリングを検証するための 2 つの方法を提供しています。
  • テンプレートエディターに直接 使用 -(ホスト パーティションテーブル、ホスト プロビジョニングテンプレート、または ホスト ジョブテンプレート配下の)テンプレート の編集時に、Template タブで Preview をクリックし、ドロップダウンメニューからホストを選択します。次に、選択したホストのパラメーターを使用して、テキストフィールドでテンプレートをレンダリングします。プレビューが失敗した場合は、ここでテンプレートの問題を特定できます。
  • ホストの詳細ページで、HostsAll hosts でホストを選択し、Template タブをクリックして、ホスト 関連付けられたテンプレートを一覧表示します。選択したテンプレートの横にあるドロップダウンメニューから Review を選択して、そのテンプレートをレンダリングします。

A.3. Satellite 固有の関数および変数

このセクションでは、ERB テンプレートの Satellite 固有の関数および変数を一覧表示します。これらは、あらゆる種類のテンプレートで使用できるものもあれば、制限されているものもあります。たとえば、ジョブテンプレートは @host 変数のみを受け入れ、表A.4「キックスタート固有の変数」 の変数はキックスタートテンプレートでのみ適用できます。
以下のテーブルに記載されている関数は、すべての種類のテンプレートで使用することができます。
Expand
表A.1 汎用的な関数
名前説明
indent(n)コードブロックを n スペース分インデントします。インデントされていないスニペットテンプレートの使用時に便利です。
foreman_url(kind)完全な URL を、ホストでレンダリングされた指定タイプのテンプレートに返します。たとえば、provision タイプのテンプレートは通常 http://HOST/unattended/provision にあります。
snippet(name)指定されたスニペットテンプレートをレンダリングします。プロビジョニングテンプレートをネスト化するのに便利です。
snippets(file)Foreman データベースで、指定したスニペットをレンダリングします。データベースにない場合は unattended/snippets/ ディレクトリーからこれをロードします。
snippet_if_exists(name)指定されたスニペットをレンダリングし、指定された名前を持つスニペットが見つからない場合は省略します。

例A.1 スニペットおよびインデント関数の使用

以下の構文は、subscription_manager_registration スニペットをテンプレートにインポートし、4 スペース分インデントします。
<%= indent 4 do
snippet 'subscription_manager_registration'
end %>
Copy to Clipboard Toggle word wrap
ジョブテンプレートでは、以下の機能を使用できます。使用例については、「詳細テンプレートの作成」 を参照してください。
Expand
表A.2 ジョブテンプレート固有の関数
名前説明
input(input_name)ジョブ実行時に指定された入力の値を返します。
render_template(name, parameters)汎用的な snippet() 関数と同様に指定されたテンプレートを返しますが、引数をテンプレートに渡すことができます。
以下の変数は、テンプレート内でのホストの使用を可能にします。
Expand
表A.3 ホスト固有の変数および関数
名前説明
@host.architectureホストのアーキテクチャーです。
@host.bond_interfacesすべてのボンディングインターフェイスのアレイを返します。注記を参照してください。
@host.capabilitiesシステムプロビジョニングの方法には、ビルド (キックスタートなど) またはイメージのいずれかを使用できます。
@host.certnameホストの SSL 証明書名です。
@host.diskLayoutホストのディスクレイアウトです。オペレーティングシステムから継承できます。
@host.domainホストのドメインです。
@host.environmentホストの Puppet 環境です。
@host.factsFacter からファクトの Ruby ハッシュを返します。たとえば、出力の 'ipaddress' ファクトにアクセスするには、@host.facts['ipaddress'] を指定します。
@host.grub_passホストの GRUB パスワードを返します。
@host.hostgroupホストのホストグループです。
@host.info['parameters']ホストパラメーターの情報が含まれる Ruby ハッシュを返します。たとえば、@host.info['parameters']['lifecycle_environment'] を使用してホストのライフサイクル環境を取得します。
@host.image_build?ホストがイメージを使用してプロビジョニングされる場合に true を返します。
@host.interfacesプライマリーインターフェイスを含む利用可能なすべてのホストインターフェイスのアレイが含まれます。注記を参照してください。
@host.interfaces_with_identifier('IDs')指定された ID を持つインターフェイスのアレイを返します。複数の ID のアレイを入力として渡すことができます (例: @host.interfaces_with_identifier(['eth0', 'eth1']))。注記を参照してください。
@host.ipホストの IP アドレスです。
@host.locationホストの位置です。
@host.macホストの MAC アドレスです。
@host.managed_interfacesマネージドインターフェイスのアレイを返します (BMC およびボンディングインターフェイスを除く)。注記を参照してください。
@host.medium割り当てられたオペレーティングシステムのインストールメディアです。
@host.nameホストの完全名です。
@host.operatingsystem.family オペレーティングシステムファミリーです。
@host.operatingsystem.major割り当てられたオペレーティングシステムのメジャーバージョンの番号です。
@host.operatingsystem.minor割り当てられたオペレーティングシステムのマイナーバージョンの番号です。
@host.operatingsystem.name割り当てられたオペレーティングシステムの名前です。
@host.operatingsystem.boot_files_uri(@host.medium,@host.architecture)カーネルおよび initrd への完全パスで、アレイを返します。
@host.os.medium_uri(@host) プロビジョニングに使用される URI です (インストールメディアに設定されるパス)。
@host.param_false?(name)指定された名前のホストパラメーターが false と評価されると、false を返します。
@host.param_true?(name) 指定された名前のホストパラメーターが true と評価されると、true を返します。
@host.params['parameter_name']指定されたパラメーターの値を返します。
@host.primary_interfaceホストのプライマリーインスタンスを返します。
@host.providerコンピュートリソースプロバイダーです。
@host.provision_interfaceホストのプロビジョニングインターフェイスを返します。インターフェイスオブジェクトを返します。
@host.ptableパーティションテーブル名です。
@host.puppetmasterホストが使用する必要のある Puppet マスターです。
@host.pxe_build?ホストがネットワークまたは PXE を使用してプロビジョニングされる場合に true を返します。
@host.shortnameホストの省略名です。
@host.sp_ipBMC インターフェイスの IP アドレスです。
@host.sp_macBMC インターフェイスの MAC アドレスです。
@host.sp_nameBMC インターフェイスの名前です。
@host.sp_subnetBMC ネットワークのサブネットです。
@host.subnet.dhcpDHCP プロキシーがこのホストに設定されている場合は true を返します。
@host.subnet.dns_primaryホストのプライマリー DNS サーバーです。
@host.subnet.dns_secondaryホストのセカンダリー DNS サーバーです。
@host.subnet.gatewayホストのゲートウェイです。
@host.subnet.maskホストのサブネットマスクです。
@host.url_for_boot(:initrd)このホストに関連付けられる initrd イメージへの完全パスです。変数を補間しないので推奨されません。
@host.url_for_boot(:kernel)このホストに関連付けられたカーネルへの完全パスです。変数を補間しないので推奨されません。boot_files_uri が優先されます。
@provisioning_typeプロビジョニングのタイプに応じて host' または 'hostgroup' と等しくなります。
@staticネットワーク設定が静的な場合、true を返します。
@template_nameレンダリングされるテンプレートの名前です。
grub_passmd5pass 引数でラップされる GRUB パスワードを返します(is-- md5pass=#{@host.grub_pass} )。
ks_consoleポートを使用して組み立てられる文字列、およびカーネル行に追加できるボーレートを返します(例: console=ttyS1,9600 )。
root_passシステムに設定される root パスワードを返します。
注記
@host.interfaces または @host.bond_interfaces などのネットワークインターフェイスに関連するホスト変数は、アレイでグループ化されたインターフェイスデータを返します。特定のインターフェイスのパラメーター値を抽出するには、Ruby メソッドを使用してアレイを解析します。たとえば、アレイから最初のインターフェイスに関する情報を取得し、キックスタートテンプレートで使用するには、以下を実行します。
<% myinterface = @host.interfaces.first %>
IPADDR="<%= myinterface.ip %>"
NETMASK="<%= myinterface.subnet.mask %>"
GATEWAY="<%= myinterface.subnet.gateway %>"
Copy to Clipboard Toggle word wrap
インターフェイス名のアレイを抽出するなどの目的でインターフェイスアレイを繰り返すことができます。以下を使用します。
<% ifnames = []
@host.interfaces.each do |i|
  ifnames.push(i.name)
end %>
Copy to Clipboard Toggle word wrap

例A.2 ホスト固有変数の使用

以下の例では、ホストで Puppet および Puppetlabs リポジトリーが有効にされているかどうかをチェックします。
<%
pm_set = @host.puppetmaster.empty? ? false : true
puppet_enabled = pm_set || @host.param_true?('force-puppet')
puppetlabs_enabled = @host.param_true?('enable-puppetlabs-repo')
%>
Copy to Clipboard Toggle word wrap
以下の例では、パッケージ関連の決定に使用できるホストのオペレーティングシステムのマイナーおよびメジャーバージョンを取得する方法を示します。
<%
os_major = @host.operatingsystem.major.to_i
os_minor = @host.operatingsystem.minor.to_i
%>

<% if ((os_minor < 2) && (os_major < 14)) -%>
...
<% end -%>
Copy to Clipboard Toggle word wrap
以下の例では、ホストのスニペットで DHCP ブートモードが有効な場合に 'kickstart_networking_setup' スニペットをインポートします。
<% subnet = @host.subnet %>
<% if subnet.respond_to?(:dhcp_boot_mode?) -%>
<%= snippet 'kickstart_networking_setup' %>
<% end -%>
Copy to Clipboard Toggle word wrap
一般的な Ruby メソッドのほとんどは、ホスト固有の変数に適用できます。たとえば、ホストの IP アドレスの最後のセグメントを抽出するには、以下を使用できます。
<% @host.ip.split('.').last %>
Copy to Clipboard Toggle word wrap
以下の変数は、キックスタートプロビジョニングテンプレート内で使用されるように設計されています。
Expand
表A.4 キックスタート固有の変数
名前説明
@arch ホストのアーキテクチャー名です。@host.architecture.name と同じです。
@dynamic 使用されているパーティションテーブルが %pre スクリプト(テーブルの最初の行に #Dynamic オプションがある)の場合、true を返します。
@epelepel-release rpm の正しいバージョンを自動インストールするコマンドです。%post スクリプトで使用されます。
@mediapath URL コマンドを提供する詳細なキックスタート行です。
@osver オペレーティングシステムのメジャーバージョンの番号です。@host.operatingsystem.major と同じです。

法律上の通知

Copyright © 2016 Red Hat.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License.If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original.If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent.Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission.We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat