第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 に保存されるモジュールを使用して設定を行います。
このワークフローは、特定のオプションに応じて異なります。詳細については、後の章で説明します。以下はオプションの例になります。
- 検出: 検出サービスを使用している場合、Satellite Server は新規ホストの MAC アドレスを自動的に検出し、要求の送信後にホストを再起動します。Satellite でホストを再起動できるよう、ホストが割り当てられる Capusule から TCP ポート 8443 にアクセスできなければならないことに注意してください。
- PXE なしのプロビジョニング: 新規ホストの要求の送信後に、Satellite Server からダウンロードしたブートディスクで特定のホストを起動する必要があります。
- コンピュートリソース: コンピュートリソースは新規ホストの仮想マシンを作成し、MAC アドレスを Satellite Server に返します。また、イメージベースのプロビジョニングを使用している場合、ホストは標準の PXE ブートおよびオペレーティングシステムのインストール方法に従いません。その代わりに、コンピュートリソースは新規ホストが使用する選択したイメージのコピーを作成します。
- コンテナー: コンテナーのプロビジョニングプロセスはこのワークフロープロセスに従いません。
5.2. Satellite Server でのホストの作成
ホストのプロビジョニングを設定するには、Satellite Server でホストのエントリーの作成することからスタートします。これは Web UI または Hammer CLI で実行できます。ここでは、ホストのプロビジョニングに必要な基本的な要素を説明します。これらは、後の章で扱われる特定のプロビジョニング方法に関連した参照情報になります。
Web UI を使用する場合
ホスト > 新規ホスト に移動します。UI には、ホストの詳細を入力できる一覧のフィールドがあります。
ホスト タブで、ホストとその配置についての主な詳細を定義します。
- 名前: ホストの名前。
- 組織: このホストを所有する組織。
- ロケーション: このホストのロケーション。
- ホストグループ: このホストのテンプレートとして使用するホストグループを定義します。
- デプロイ先: ベアメタルのホストまたはコンピュートリソースかなど、ホストのデプロイメントのタイプを定義します。
- ライフサイクル環境: アプリケーションライフサイクルにおけるホストのステージを定義します。
- コンテンツビュー: リポジトリーに使用するコンテンツビューを定義します。
- Puppet 環境: ホストを含む Puppet 環境を定義します。通常、これは事前に選択されたコンテンツビューおよびライフサイクル環境を使用して定義されます。
- コンテンツソース: コンテンツビューからコンテンツをプロビジョニングするために使用する Capsule サーバー。
- Puppet CA: エージェントの認定に使用する Capsule サーバー。
- Puppet マスター: エージェント通信のマスターサーバーとして使用する Capsule サーバー。
- Openscap Proxy: OpenSCAP プロキシーとして使用するサーバー。
Puppet クラス タブでは、プロビジョニング後にホストに適用する Puppet クラスを選択します。これらのクラスは、ホスト タブで選択されたコンテンツビューおよび Puppet 環境から取られます。組み込み済みのクラス セクションにはホストに適用されるクラスが表示され、利用可能なクラス セクションにはホストに追加できるクラスが表示されます。
インターフェース タブでは、ホストのネットワークインターフェースの設定を定義します。インターフェースの追加 をクリックして新規インターフェースを作成するか、または 編集 をクリックして特定のインターフェースを編集します。新規または変更されたインターフェースは以下のフィールドを含むフォームを使用します。
-
Type (タイプ): 使用するインターフェースのタイプ。これには、基本的なイーサネット接続 (
インターネット
) だけでなく、ベースボード管理コントローラー (BMC
)、ボンド (Bond
)、およびブリッジ (Bridge
) が含まれます。これにより、ホストの複雑なネットワーク設定を作成することができます。 - MAC (MAC address): インターフェースの MAC アドレス。これを使用して、ネットワークの詳細を特定のインターフェースにマップできます。さらに、プロビジョニングインターフェースの MAC アドレスは、PXE ブート時にベアメタルホストを特定するために使用されます。
-
デバイス ID:
eth0
、ens8
、bond0
、およびbr0
などのインターフェース ID。 - DNS 名: ホストのドメイン名。通常、これには ホスト タブのホスト名が自動的に設定されます。
- ドメイン: ホストのプロビジョニングに使用するドメイン。これと DNS 名 の組み合わせにより、ホストの完全修飾ドメイン名 (FQDN) が作成されます。
- サブネット: このインターフェースに接続するネットワーク。
- IP (IP address): このインタフェースの IP アドレス。選択される サブネット とそのオプションにより、このフィールドにはデータが自動的に設定されます。
インターフェースのセレクションには以下が含まれます。
- 管理 (Managed): このインターフェースはプロビジョニング時に DHCP および DNS で管理されます。
- Primary: これはメインのインターフェースを定義し、インターフェースの詳細からホストの FQDN を構築します。
- Provision: このインターフェースは PXE ブートサービスに使用されます。
- リモート実行: このインターフェースはリモート実行機能に使用されます。
このフォームには、選択されたネットワークインターフェースの タイプ に関連した追加のフィールドも表示されます。たとえば、Bond
を選択すると、ボンディングモードを設定するためのオプション、ボンディングオプション、およびボンドに割り当てるデバイスを選択するオプションが提供されます。
オペレーティングシステム タブでは、ホストにインストールするオペレーティングシステムおよび関連分野を定義します。ホストの アーキテクチャー を選択してから、そのアーキテクチャーに関連する オペレーティングシステム を選択します。フォームには、選択したオペレーティングシステムに基づく追加のオプションが提供されます。
- ビルド (Build mode): ホストをプロビジョニングし、オペレーティングシステムを開始するかどうかを定義します。このオプションは、すべてのプロビジョニングタスクで必要になります。すでに存在するプロビジョニングされたホストのエントリーを作成する場合にのみこのオプションを無効にする必要があります。
-
メディア (Media Selection): 同期したキックスタートのリポジトリーのみから、またはすべてのリポジトリーから選択するかどうかを定義します。ホストのプロビジョニングに使用するインストールメディアのタイプを選択します。同期したキックスタートリポジトリーの場合は
Synced Content
を選択し、ホスト > インストールメディア > 新規メディア で手動で追加されたインストールメディアなど、他のインストールメディアから選択する場合はAll Media
を選択します。 - メディア: オペレーティングシステムのインストールメディアを定義します。通常、これはキックスタートツリーですが、ローカルにマウントされた ISO イメージにすることもできます。
- パーティションテーブル: ルートディスクのレイアウトに使用するパーティションテーブルを定義します。このフォームで カスタムパーティションテーブル を直接定義することもできます。
- ルートパス (Root password): オペレーティングシステム上の root ユーザーのパスワード。
- プロビジョニングテンプレート: ホストをプロビジョニングするために選択されたテンプレートが表示されます。解決 をクリックすると、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 では ホストグループ の概念が導入されているため、ホストのプロビジョニングに要する時間を短縮できます。
ホストグループは、共通するホスト設定のテンプレートとして機能します。これには、ホストに提供する詳細情報として同じものが多数含まれます。新規ホストをホストグループを使ってプロビジョニングする場合、ホストはホストグループから定義された設定を継承します。その後に、ホストを個別化するために必要に応じて追加の詳細情報を指定できます。
さらに、ホストグループの階層を作成することもできます。たとえば、オペレーティングシステムを定義するベースレベルのホストグループと、ベースレベルのホストグループを継承する 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
と入力します。 -
ライフサイクル環境: アプリケーションライフサイクルにおけるホストのステージを定義します。Red Hat Satellite 6 コンテンツ管理ガイド で作成された
Production (本番)
環境を選択します。 -
コンテンツビュー: リポジトリーに使用するコンテンツビューを定義します。Red Hat Satellite 6 コンテンツ管理ガイド で作成された
Base (ベース)
ビューを選択します。 -
Puppet 環境: ホストを含む Puppet 環境を定義します。通常、これは事前に選択されたコンテンツビューおよびライフサイクル環境を使用して定義されます。この例では、Puppet モジュールを含まない
production (本番)
環境を選択します。 - コンテンツソース: コンテンツビューからコンテンツを提供するために使用する Capsule サーバー。Satellite Server の統合 Capsule を選択します。
- Puppet CA: エージェントの認定に使用する Capsule サーバー。Satellite Server の統合 Capsule を選択します。
- Puppet マスター: エージェント通信のマスターサーバーとして使用する Capsule サーバー。Satellite Server の統合 Capsule を選択します。
- Openscap Proxy: OpenSCAP プロキシーとして使用するサーバー。これは空白のままにします。
-
名前: ホストグループの名前。このシナリオの場合、
- Puppet クラス タブでは、プロビジョニング後にホストに適用する Puppet クラスを選択します。このシナリオでは Puppet クラスを使用しないため、このタブは省略します。
ネットワーク タブ:
-
ドメイン: ホストのプロビジョニングに使用するドメイン。これと DNS 名 の組み合わせにより、ホストの完全修飾ドメイン名 (FQDN) が作成されます。ACME の
example.com
ドメインを選択します。 -
サブネット: このインターフェースに接続するネットワーク。
ACME の内部ネットワーク
を選択します。 - レルム: ホストの認証レルムを定義します。このシナリオではレルムを使用しないのでこのフィールドを空白のままにします。
-
ドメイン: ホストのプロビジョニングに使用するドメイン。これと DNS 名 の組み合わせにより、ホストの完全修飾ドメイン名 (FQDN) が作成されます。ACME の
オペレーティングシステム タブ:
-
アーキテクチャー: ホストのアーキテクチャー。
x86_64
を選択します。 - オペレーティングシステム: インストールするベースオペレーティングシステム。『Red Hat Satellite 6 コンテンツ管理ガイド』の「Red Hat リポジトリーの同期」セクションで説明されているように、Red Hat Enterprise Linux 7.2 のエントリーは同期ステップの実行後に表示されるはずです。
-
アーキテクチャー: ホストのアーキテクチャー。
メディア (Media Selection): 同期したキックスタートのリポジトリーのみから、またはすべてのリポジトリーから選択するかどうかを定義します。このホストグループのプロビジョニングに使用するインストールメディアのタイプを選択します。同期したキックスタートリポジトリーの場合は
Synced Content
を選択し、ホスト > インストールメディア > 新規メディア で手動で追加されたインストールメディアなどの他のインストールメディアから選択する場合はAll Media
を選択します。- メディア: オペレーティングシステムのインストールメディア。Red Hat Enterprise Linux 7.2 からキックスタートツリーを選択します。これは、『Red Hat Satellite 6 コンテンツ管理ガイド』の「Red Hat リポジトリーの同期」セクションに説明されているように、同期ステップの実行後に表示されるはずです。
-
パーティションテーブル: ルートディスクのレイアウトに使用するパーティションテーブルを定義します。
デフォルトキックスタート
を選択します。 - ルートパス (Root password): オペレーティングシステム上の root ユーザーのパスワード。root パスワードを入力します。
- パラメーター タブでは、プロビジョニングプロセスと 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
ホストグループを使用してホストの設定を事前に定義します。