第5章 プロビジョニングワークフローの概要
本章では、Red Hat Satellite 6 におけるプロビジョニングの基本的なワークフローについて説明します。この章の内容は、後の章で特定のプロビジョニング方法を使用する際のベースとなります。
5.1. プロビジョニングワークフローの定義
プロビジョニングプロセスは、以下に概説される基本的なワークフローに従います。
- Web UI の ホスト > ホストの作成 の ホストの作成 ページか、または Hammer CLI のいずれかで新規ホストを作成します。また、Satellite Server は、サブネットに関連付けられた DHCP Capsule Server から未使用の IP アドレスを要求します。ホストの作成 ページは、この IP アドレスを IP アドレスフィールドに使用します。新規ホストのすべてのオプションの実行後には、新規ホストの要求を送信します。
- サブネットに関連付けられた DHCP Capsule Server がホストのエントリーを予約します。
Satellite Server は DNS レコードを設定します。
- 正引き DNS レコードがドメインに関連付けられた Capsule Server に作成されます。
- 逆引き DNS レコードがサブネットに関連付けられた DNS Capsule Server に作成されます。
- ホストの PXELinux メニューがサブネットに関連付けられた TFTP Capsule Server に作成されます。
- 新規ホストは DHCP サーバーから DHCP リースを要求します。
-
DHCP サーバーはリース要求に応答し、TFTP オプション (
next-server
、filename
) を返します。 - ホストは TFTP サーバーからブートローダーおよびメニューを要求します。
- ホストの PXELinux メニューおよび OS インストーラーは TFTP 経由で返されます。
-
インストーラーは Satellite Server から選択された
provision
テンプレートまたはスクリプトを要求します。 - Satellite Server はテンプレートをレンダリングし、結果として生成されるキックスタートをホストに返します。
-
ホストは、オペレーティングシステムをインストールするビルドシステムに入り、ホストを Satellite Server に登録して管理ツール (
katello-agent
,puppet
) をインストールします。 -
インストーラーは Satellite に対し、
postinstall
スクリプトで正常なビルドについて通知します。 - PXELinux メニューはローカルの起動テンプレートに戻ります。
- ホストはオペレーティングシステムを起動します。ホストで Puppet クラスを使用するように設定している場合は、ホストは Satellite Server に保存されるモジュールを使用して設定を行います。
このワークフローは、特定のオプションに応じて異なります。詳細については、後の章で説明します。以下はオプションの例になります。
- Discovery — Discovery サービスを使用している場合、Satellite Server は新規ホストの MAC アドレスを自動的に検出し、要求の送信後にホストを再起動します。Satellite でホストを再起動できるよう、ホストが割り当てられる Capusule から TCP ポート 8443 にアクセスできなければならないことに注意してください。
- PXE を使用しないプロビジョニング — 新規ホストの要求の送信後に、Satellite Server からダウンロードしたブートディスクで特定のホストを起動する必要があります。
- コンピュートリソース — コンピュートリソースは新規ホストの仮想マシンを作成し、MAC アドレスを Satellite Server に返します。また、イメージベースのプロビジョニングを使用している場合、ホストは標準の PXE ブートおよびオペレーティングシステムのインストール方法に従いません。その代わりに、コンピュートリソースは新規ホストが使用する選択したイメージのコピーを作成します。
- コンテナー — コンテナーのプロビジョニングプロセスは、このワークフロープロセスに従いません。
5.2. Satellite Server でのホストの作成
ホストのプロビジョニングを設定するには、Satellite Server でホストのエントリーを作成することからスタートします。Web UI または Hammer CLI のいずれかを使用できます。これは、Config Group を含むホストのプロビジョニングの基本を提供します。これらは、後の章で扱われる特定のプロビジョニング方法に関連した参照情報になります。Config Group に関する詳細は、『Puppet Guide』 の 「Using Config Groups to Manage Puppet Classes」 を参照してください。
Web UI を使用する場合
ホスト > ホストの作成 に移動します。UI には、ホストの詳細を入力できる一連のフィールドがあります。
ホスト タブで、ホストとその配置についての主な詳細を定義します。Capsule Server は、セットアップに応じて Satellite Server の統合 Capsule または外部 Capsule Server になります。
- 名前 — ホストの名前。
- 組織 — このホストを所有する組織。
- ロケーション — このホストのロケーション。
- ホストグループ — このホストのテンプレートとして使用するホストグループ。詳細については、『アーキテクチャーガイド』 の 「ホスト分類の概念」 を参照してください。
- デプロイ先 — ホストのデプロイメントのタイプで、ベアメタルのホスト上か、コンピュートリソースを介するか、のいずれかになります。
- ライフサイクル環境 — ホストのアプリケーションライフサイクルにおけるステージ。
- コンテンツビュー — リポジトリーに使用するコンテンツビュー。
- コンテンツソース — コンテンツビューからコンテンツを提供するために使用する Capsule Server。外部 Capsule Server を使用する場合、コンテンツがすでに Capsule Server と同期していることを確認します。詳細については、『インストールガイド』 の 「Capsule Server へのライフサイクル環境の追加」 を参照してください。
- Puppet 環境 — ホストを含む Puppet 環境。通常、これは事前に選択されたコンテンツビューおよびライフサイクル環境を使用して定義されます。
- Puppet マスター — エージェント通信のマスターサーバーとして使用する Capsule Server。
- Puppet CA — エージェントの認定に使用する Capsule Server。
- OpenSCAP Capsule — OpenSCAP プロキシーとして使用する Capsule Server。
Puppet クラス タブで、どの Puppet クラスおよび Config Group をプロビジョニング後にホストに適用するか選択します。これらのクラスは、ホスト タブで選択されたコンテンツビューおよび Puppet 環境から取得します。組み込み済みのクラス セクションにはホストに適用されるクラスが表示され、利用可能なクラス セクションにはホストに追加できるクラスが表示されます。
インターフェース タブでは、ホストのネットワークインターフェースの設定を定義します。インターフェースの追加 をクリックして新規インターフェースを作成するか、または 編集 をクリックして特定のインターフェースを編集します。新規または変更されたインターフェースは以下のフィールドを含むフォームを使用します。
-
Type (タイプ) — 使用するインターフェースのタイプ。これには、基本的なイーサネット接続 (
インターフェース
) だけでなく、ベースボード管理コントローラー (BMC
)、ボンド (Bond
)、およびブリッジ (Bridge
) が含まれます。これにより、ホストの複雑なネットワーク設定を作成することができます。 - MAC アドレス — インターフェースの MAC アドレス。これを使用して、ネットワークの詳細を特定のインターフェースにマッピングできます。さらに、プロビジョニングインターフェースの MAC アドレスは、PXE ブート時にベアメタルホストを特定するために使用されます。
-
デバイス ID —
eth0
、ens8
、bond0
、およびbr0
などのインターフェース ID。 - DNS 名 — ホストのドメイン名。これには通常、ホスト タブのホスト名が自動的に設定されます。
- ドメイン — ホストのプロビジョニングに使用するドメイン。これと DNS 名 の組み合わせにより、ホストの完全修飾ドメイン名 (FQDN) が作成されます。
- サブネット — このインターフェースに接続するネットワーク。
- IP アドレス — このインタフェースの IP アドレス。選択される サブネット とそのオプションにより、このフィールドにはデータが自動的に設定されます。
インターフェースタイプのセレクションには以下が含まれます。
- 管理 — このインターフェースはプロビジョニングの間、DHCP、DNS、および TFTP を提供します。さらに、インターフェースの設定を使用して、ホストのインターフェース設定ファイルが生成されます。個別のサービスを無効にするには、インフラストラクチャー > サブネット そして インフラストラクチャー > ドメイン へ行き、該当する Capsule 設定を なし に設定します。
- プライマリー — メインのインターフェースで、インターフェースの詳細からホストの FQDN を構築します。
- プロビジョニング — PXE ブートサービスのインターフェースです。イメージをベースにしたプロビジョニングの場合、このインターフェースの IP アドレスがクライアントへの SSH 接続に使用されます。
- リモート実行 — このインターフェースはリモート実行機能に使用されます。
このフォームには、選択されたネットワークインターフェースの タイプ に関連した追加のフィールドも表示されます。たとえば、Bond
を選択すると、ボンディングモードを設定するためのオプション、ボンディングオプション、およびボンドに割り当てるデバイスを選択するオプションが提供されます。
オペレーティングシステム タブで、ホストにインストールするオペレーティングシステムおよび関連分野を定義します。ホストの アーキテクチャー を選択してから、そのアーキテクチャー に関連する オペレーティングシステム を選択します。選択したオペレーティングシステムに応じて、様々なオプションが利用できます。
- ビルドモード — ホストのプロビジョニングとオペレーティングシステムのインストールを可能にします。このオプションは、すべてのプロビジョニングタスクで必要です。すでに存在するプロビジョニングされたホストのエントリーを作成する場合にのみ、このオプションを無効にする必要があります。
-
メディアセレクション — 同期したキックスタートのリポジトリーから、またはすべてのリポジトリーからの選択を可能にします。このホストのプロビジョニングに使用するインストールメディアのタイプを選択します。同期したキックスタートリポジトリーの場合は
同期したコンテンツ
を選択します。または、すべてのメディア
を選択し、他のインストールメディアから選択します。通常、これは ホスト > インストールメディア > 新規メディア で手動で追加されたものになります。 - メディア — オペレーティングシステムのインストールメディア。通常、これはキックスタートツリーですが、ローカルにマウントされた ISO イメージの場合もあります。
- パーティションテーブル — ルートディスクのレイアウトに使用するパーティションテーブルのテンプレート。このフォームで カスタムパーティションテーブル を直接定義することもできます。
- PXE ローダー - Red Hat Satellite 6.3 は、BIOS および UEFI の両システムのブートをサポートします。ホストが PXE プロビジョニングを使用する場合、正しい DHCP ファイルを選択してロードする必要があります。ホストが iPXE などの PXE を使用しないプロビジョニングを使用する場合、なし を選択します。
- ルートパスワード — オペレーティングシステムにおけるルートユーザーのパスワード。
- プロビジョニングテンプレート — ホストをプロビジョニングするために選択されたテンプレートが表示されます。解決 をクリックすると、Satellite Server がテンプレートをプロビジョニングプロセスの特定の機能に割り当てる方法を確認できます (PXE、プロビジョニング、ユーザーデータなど)。
オペレーティングシステム タブには、ホスト タブの デプロイ先 でコンピュートリソースを選択している場合には追加のオプションが表示されます。これらのオプションについては後の章で説明します。
パラメーター タブでは、プロビジョニングプロセスと Puppet 設定の両方に変数データを設定します。Puppet クラスパラメーター セクションでは、Puppet のパラメーターに送信されたデータを変更することができます。グローバルパラメーター および ホストパラメーター では、プロビジョニングテンプレートなどの Satellite Server 内で使用できるカスタムパラメーターを定義できます。
アクティべーションキーをホストに割り当てる場合、名前 を kt_activation_keys
に設定し、値 をアクティべーションキーの名前に設定して新規のホストパラメーターを追加します。
追加情報 タブでは、ホストの所有者、レポートに組み込むかどうか、ハードウェアモデルおよび追加のコメントなど、ホストについての各種データを定義します。
ホストのエントリーを保存するには、送信 をクリックします。
CLI を使用する場合
hammer host create
コマンドでホストを作成します。以下は例になります。
# hammer host create --name "testhost" --organization "ACME" \ --location "New York" --environment "Test" --architecture "x86_64" \ --build true --domain "example.com" --enabled true \ --mac "aa:aa:aa:aa:aa:aa" --subnet "ACME's Internal Network" \ --managed true --medium "Red Hat Kickstart Tree" \ --operatingsystem "RedHat 7.2" --owner admin \ --partition-table "Kickstart Default" \ --puppet-proxy "satellite.example.com" \ --puppet-ca-proxy "satellite.example.com" --root-password "p@55w0rd!"
--interface
オプションを使用して、特定のインターフェース設定を行います。詳細は、付録B Hammer CLI の追加のホストパラメーター を参照してください。hammer host interface create
コマンドで特定のネットワークインターフェース設定を定義することもできます。--host
または --host-id
オプションを使用して、インターフェースを受信するホストを特定します。以下に例を示します。
# hammer host interface create --host "testhost" --type interface \ --mac "aa:aa:aa:aa:aa:aa" --identifier "eth0" --name "testhost" \ --domain "example.com" --subnet "ACME's Internal Network" \ --managed true --primary true --provision true
この手順は、大半のプロビジョニング方法のベースとなる手順です。ただし、各ホストのすべての情報を定義するプロセスには時間がかかります。そのため、ホストグループを作成してすべてのホストに共通する設定を定義することをお勧めします。
5.3. Satellite Server でのホストグループの作成
数多くのホストをプロビジョニングする場合、ホストのすべての詳細を毎回入力すると多大な時間がかかります。ただし、Red Hat Satellite 6 では ホストグループ の概念が導入されているため、ホストのプロビジョニングに要する時間を短縮できます。
ホストグループは、共通するホスト設定のテンプレートとして機能します。これには、ホストに提供する詳細情報として同じものが多数含まれます。新規ホストをホストグループを使ってプロビジョニングする場合、ホストはホストグループから定義された設定を継承します。その後に、ホストを個別化するために必要に応じて追加の詳細情報を指定できます。
さらに、ホストグループの階層を作成することができます。通常は、組織内のすべてのホストを代表するベースレベルのホストグループを 1 つ設定し、一般的な設定を提供します。続いて、特定の設定を提供するためにネスト化したグループを設定します。たとえば、オペレーティングシステムを定義するベースレベル (親) のホストグループと、ベースレベルのホストグループを継承する 2 つのネスト化した (子) ホストグループを設定することができます。
Hostgroup:
Base
(Red Hat Enterprise Linux 7.2)Hostgroup:
Webserver
(httpd
Puppet クラスを適用)-
Host:
webserver1.example.com
(Web サーバー) -
Host:
webserver2.example.com
(Web サーバー)
-
Host:
Hostgroup:
Storage
(nfs
Puppet クラスを適用)-
Host:
storage1.example.com
(ストレージサーバー) -
Host:
storage2.example.com
(ストレージサーバー)
-
Host:
-
Host:
custom.example.com
(カスタムホスト)
この例では、プロビジョニングされたすべてのホストは Base
ホストグループの継承により、Red Hat Enterprise Linux 7.2 をオペレーティングシステムとして使用します。2 つの Web サーバーホストは Webserver
ホストグループからの設定を継承します。これには、httpd
Puppet クラスおよび Base
ホストグループの設定が含まれます。同様に、2 つのストレージサーバーは Storage
ホストからの設定を継承します。これには、nfs
Puppet クラスおよび Base
ホストグループの設定が含まれます。カスタムホストは Base
ホストグループからの設定のみを継承します。
このシナリオでは、ACME のホストグループを作成する方法を示します。本書の後の章では、このホストグループをプロビジョニングプロセスで使用します。
Web UI を使用する場合
設定 > ホストグループ に移動し、ホストグループの作成 をクリックします。UI には、ホストの作成フォームと同様のフィールドを含むフォームが表示されます。以下の詳細を入力します。
ホストグループ タブでは、以下を入力します。
- 親 — 基本的な設定を継承する親のホストグループ。最初のグループを作成する際は適用されないので、このシナリオでは空白のままにします。
-
名前 — ホストグループの名前。このシナリオの場合、
Base
と入力します。 -
ライフサイクル環境 — アプリケーションライフサイクルにおけるホストのステージ。『コンテンツ管理ガイド』 の 「アプリケーションライフサイクルの作成」 で作成された
Production (本番)
環境を選択します。 -
コンテンツビュー — リポジトリーに使用するコンテンツビュー。『コンテンツ管理ガイド』 の 「コンテンツビューの管理」 で作成された
ベース
ビューを選択します。 - コンテンツソース — コンテンツビューからコンテンツを提供するために使用する Capsule Server。Satellite Server の統合 Capsule を選択します。
Puppet 環境 — ホストを含む Puppet 環境。通常、これは事前に選択されたコンテンツビューおよびライフサイクル環境を使用して定義されます。この例では、Puppet モジュールを含まない
Production (本番)
環境を選択します。注記Puppet は、
Production
環境内に作成した Puppet 環境に関連付けられているホストグループを持つホストの登録時に、Puppet CA 証明書を取得することができません。ホストグループに関連付けられる適切な Puppet 環境を作成するには、以下の手順を実行します。手動でディレクトリーを作成して、所有者を変更します。
# mkdir /etc/puppet/environments/example_environment # chown apache /etc/puppet/environments/example_environment
-
設定
環境 へと移動し、環境をインポート をクリックします。ボタン名には、内部または外部の Capsule の FQDN が含まれます。 - 作成したディレクトリーを選択し、更新 をクリックします。
- Puppet マスター — エージェント通信のマスターサーバーとして使用する Capsule Server。Satellite Server の統合 Capsule を選択します。
- Puppet CA — エージェントの認定に使用する Capsule Server。Satellite Server の統合 Capsule を選択します。
- OpenSCAP Capsule — SCAP コンテンツを取得し、ARF レポートをアップロードするために使用する OpenSCAP Capsule。この例では、空白のままにします。
- Puppet クラス タブでは、プロビジョニング後にホストに適用する Puppet クラスを選択します。このシナリオでは Puppet クラスを使用しないため、このタブは省略します。
ネットワーク タブ:
-
ドメイン — ホストのプロビジョニングに使用するドメイン。これと DNS 名 との組み合わせにより、ホストの完全修飾ドメイン名 (FQDN) が作成されます。ACME の
example.com
ドメインを選択します。 -
IPv4 サブネット — このインターフェースに接続するネットワーク。
ACME の内部ネットワーク
を選択します。 - IPv6 サブネット — このインターフェースに接続するネットワーク。この例では、空白のままにします。
- レルム — ホストの認証レルム。このシナリオではレルムを使用しないので、このフィールドを空白のままにします。
-
ドメイン — ホストのプロビジョニングに使用するドメイン。これと DNS 名 との組み合わせにより、ホストの完全修飾ドメイン名 (FQDN) が作成されます。ACME の
オペレーティングシステム タブ:
-
アーキテクチャー — ホストのアーキテクチャー。
x86_64
を選択します。 - オペレーティングシステム — インストールするベースオペレーティングシステム。Red Hat Enterprise Linux 7.2 のエントリーは、同期の手順の実行後に表示されるはずです。手順の説明は、『コンテンツ管理ガイド』 の 「Red Hat リポジトリーの同期」 を参照してください。エントリーを選択します。
-
メディアセレクション — 同期したキックスタートのリポジトリーから、またはすべてのリポジトリーからの選択を可能にします。このホストグループのプロビジョニングに使用するインストールメディアのタイプを選択します。同期したキックスタートリポジトリーの場合は
同期したコンテンツ
を選択します。他のインストールメディアの場合はすべてのメディア
を選択します。通常、これは ホスト > インストールメディア > 新規メディア で手動で追加されたものになります。 - メディア — オペレーティングシステムのインストールメディア。Red Hat Enterprise Linux 7.2 からキックスタートツリーを選択します。これは、同期の手順の実行後に表示されるはずです。手順の説明は、『コンテンツ管理ガイド』 の 「Red Hat リポジトリーの同期」 を参照してください。
-
パーティションテーブル — ルートディスクのレイアウトに使用するパーティションテーブルのテンプレート。
Default Kickstart
を選択します。 - ルートパスワード — オペレーティングシステムにおけるルートユーザーのパスワード。ルートパスワードを入力します。
-
アーキテクチャー — ホストのアーキテクチャー。
- パラメーター タブでは、プロビジョニングプロセスと Puppet 設定の両方に変数データを設定します。このセクションは空白にします。
-
ロケーション タブで、ホストグループのロケーションを設定します。この例では、
New York
を選択します。 -
組織 タブで、ホストグループを使用できる組織を設定します。この例では、
ACME
を選択します。 -
アクティべーションキー タブでは、
サンプル
のアクティべーションキーを選択します。これにより、登録に使用するアクティベーションキーを定義する新規のパラメーター (kt_activation_keys
) が各ホストに追加されます。
送信 をクリックしてホストグループを保存します。
CLI を使用する場合
hammer hostgroup create
コマンドでホストグループを作成します。以下は例になります。
# hammer hostgroup create --name "Base" \ --lifecycle-environment "Production" --content-view "Base" \ --environment "production" --content-source-id 1 \ --puppet-ca-proxy-id 1 --puppet-proxy-id 1 --domain "example.com" \ --subnet `ACME's Internal Network` --architecture "x86_64" \ --operatingsystem "RedHat 7.2" --medium-id 9 \ --partition-table "Kickstart default" --root-pass "p@55w0rd!" \ --locations "New York" --organizations "ACME"
サーバーはホストグループのエントリーを作成します。このシナリオでは、プロビジョニングのサンプル用にこのホストグループを使用します。
5.4. 本章のまとめ
本章では、Red Hat Satellite 6 で新規ホストのエントリーを作成するための基本的なワークフローを説明しました。また、新規ホストの作成時にホストグループを作成して特定のパラメーターを事前に定義する方法についても説明しました。
次章では、ベアメタルホストのプロビジョニング方法について説明します。次章では、Base
ホストグループを使用してホストの設定を事前に定義します。