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

本章では、hammer を使用してプロビジョニング環境のあらゆる段階を設定する方法を示します。以下の手順を Web UI で行う場合は『プロビジョニングガイド』「プロビジョニングリソースの設定」を参照してください。

5.1. ドメイン

Red Hat Satellite のドメインは DNS ゾーンを表します。Satellite は、Red Hat Satellite Capsule Server DNS を使用してドメイン名を割り当てる機能があります。これにより、特定のドメイン内のホストをグループ化し、名前を指定して、パラメーターや Puppet 変数と関連付けることができます。

新規ドメインを作成するには、以下のコマンドを実行します。

$ hammer domain create --name domain_name

hammer organization add-domain または hammer location add-domain コマンドを使用して、組織とロケーションに、新規作成したドメインを関連付けることができます。ドメインのステータスを表示するには、以下のコマンドを実行します。

$ hammer domain info --name domain_name

5.2. サブネット

Red Hat Satellite のサブネットは、システムのグループを指定するネットワークを定義します。サブネットは、標準の IP アドレス設定を使用してネットワークを定義し、Red Hat Satellite Capsule Server の DHCP 機能を使用して、サブネット内のシステムに IP アドレスを割り当てます。以下のコマンドには、サブネットの作成に最小限必要なオプションが含まれます。

$ hammer subnet create \
--name subnet_name \
--organization-ids org_ID1,org_ID2... \
--location-ids loc_ID1,loc_ID2... \
--domain-ids dom_ID1,dom_ID2... \
--boot-mode boot_mode \
--network network_address \
--mask netmask \
--ipam ipam

boot_mode には Static または DHCP のいずれか、ipam には DHCP, Internal DBNone のいずれかを指定します。DHCP を使用する場合は --from オプションおよび --to オプションを使用して、IP 範囲を設定してください。設定可能なオプションの完全な一覧は、hammer subnet create --help コマンドの出力を参照してください。

5.3. アーキテクチャー

Satellite のアーキテクチャーはホストおよびオペレーティングシステムの論理グループを表します。アーキテクチャーを表示するには以下のコマンドを実行します。

$ hammer architecture list

アーキテクチャーは、ホストが Puppet に登録されると、Satellite により自動的に登録されるため、(hammer でこのオプションが提供されていますが) 手動で作成する必要はほぼありません。

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

コンピュートリソースは、仮想化およびクラウドプロバイダーからハードウェアを抽象化したものです。Satellite はコンピュートリソースを使用して仮想マシンとコンテナーをプロビジョニングします。以下のコマンドを使用してコンピュートリソースを作成します。

$ hammer compute-resource create \
--name cr_name \
--organization-ids org_ID1,org_ID2... \
--location-ids loc_ID1,loc_ID2... \
--provider provider

ここでは、provider に、RHEVRHEL OpenStack PlatformLibvirtDockerRackspaceGoogleEC2、または VMware のいずれかを指定します。プロバイダーのタイプに従い、--url または --user などのオプションも必要になる場合があります。詳しい情報は hammer compute-resource create --help コマンドの出力を参照してください。

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

インストールメディア (ISO イメージ) では、Red Hat Satellite のキックスタートツリーおよび新規ホストインストールのコンテンツを提供します。メディアを表示するには、以下のコマンドを実行します。

$ hammer medium list

新規メディアを追加するには以下のコマンドを実行します。

$ hammer medium create --name medium_name --path path_to_medium

メディアの追加時 (hammer medium create --help コマンドの出力を参照)、もしくは後で hammer organization add-medium コマンドか hammer location add-medium コマンドを使用して、メディアを組織およびロケーションに直接公開できます。

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

パーティションテーブルは、システムのプロビジョニング時に、新規インストール用のパーティションとファイルシステムのレイアウトを定義します。Red Hat Satellite により、オペレーティングシステムファミリーが関連付けられたデフォルトのパーティションテーブルを提供します。パーティションテーブルを表示するには、以下のコマンドを実行します。

$ hammer partition-table list

新しいパーティションテーブルを作成するには、以下のコマンドを実行します。

$ hammer partition-table create \
--name table_name \
--file path_to_layout_file \
--os-family os_family

他のサブコマンドについては hammer partition-table --help コマンドを参照してください。

5.7. プロビジョニングテンプレート

テンプレートをプロビジョニングすると、無人インストールを体系的に実行する手段が提供されます。Satellite が提供するプロビジョニングテンプレートを表示するには、以下のコマンドを実行します。

$ hammer template list

新規テンプレートを追加するには、以下のコマンドを実行します。

$ hammer template create --name template_name --file path_to_template_file

他のサブオプションについては hammer template --help コマンドの出力を参照します。

5.7.1. テンプレートのインポート

hammer import-templates コマンドを使うと任意のリポジトリーからテンプレートをインポートできます。/tmp/dirgit://example.comhttps://example.comssh://example.com などの異なるプロトコルを使ってリポジトリーにポイントさせることもできます。

テンプレートのインデックス化と管理には、--prefix を使ってテンプレートにカテゴリーを設定することができます。大型リポジトリーから特定のテンプレートを選択するには、--filter を使ってインポートするテンプレートのタイトルを定義します。たとえば、--filter '.*Ansible Default$' とすると、各種 Ansible Default テンプレートをインポートします。

リポジトリーからテンプレートをインポートするには、以下のコマンドを実行します。

$ hammer import-templates \
    --prefix '[Custom Index] ' \
    --filter '.*Template Name$' \
    --repo https://github.com/examplerepo/exampledirectory \
    --branch my_branch \
    --organization 'Default Organization'

5.7.2. テンプレートのエクスポート

hammer export-templates コマンドを使うとテンプレートを Git リポジトリーにエクスポートできます。

  1. Git リポジトリーのローカルコピーをクローンします。

    $ git clone https://github.com/theforeman/community-templates /custom/templates
  2. 以下のコマンドで、ローカルディレクトリーの所有者を foreman ユーザーに変更し、SELinux コンテキストを変更します。

    # chown -R foreman:foreman /custom/templates
    # chcon -R -t httpd_sys_rw_content_t /custom/templates
  3. テンプレートをローカルリポジトリーにエクスポートするには、以下のコマンドを実行します。

    hammer export-templates --organization 'Default Organization' --repo /custom/templates

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

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

$ hammer os list

新規オペレーティングシステムを作成するには、以下のコマンドを実行します。

$ hammer os create --name os_name --major version_number

次に、アーキテクチャー、パーティションテーブル、インストールメディア、設定テンプレートをオペレーティングシステムに追加することができます。詳しい情報は hammer os --help の出力を参照してください。

例5.1 複数のオペレーティングシステムの更新

以下の Bash スクリプトは、各オペレーティングシステムにパーティションテーブル (Kickstart default)、設定テンプレート (Kickstart default PXELinux) およびプロビジョニングテンプレート(Satellite Kickstart Default) を割り当てます。

PARTID=$(hammer --csv partition-table list | grep "Kickstart default" | cut -d, -f1)
PXEID=$(hammer --csv template list --per-page=1000 | grep "Kickstart default PXELinux" | cut -d, -f1)
SATID=$(hammer --csv template list --per-page=1000 | grep "provision" | grep "Satellite Kickstart Default" | cut -d, -f1)

for i in $(hammer --csv os list | grep -vi '^ID' | awk -F, {'print $1'})
do
   hammer partition-table add-operatingsystem --id="${PARTID}" --operatingsystem-id="${i}"
   hammer template add-operatingsystem --id="${PXEID}" --operatingsystem-id="${i}"
   hammer os set-default-template --id="${i}" --config-template-id="${PXEID}"
   hammer os add-config-template --id="${i}" --config-template-id="${SATID}"
   hammer os set-default-template --id="${i}" --config-template-id="${SATID}"
done

for ステートメントに grep コマンドを追加して、影響を受けるオペレーティングシステムをさらに指定することができます。割当が正しく行われたかどうかを確認するには hammer os info コマンドを実行します。

5.9. パラメーター

パラメーターは、プロビジョニング時の Red Hat Satellite の動作を定義します。パラメーターは複数ありますが、詳しい情報は『Puppet ガイド』「パラメーター」を参照してください。以下の例を使用して、グローバルパラメーターを設定します。

$ hammer global-parameter set --name param_name --value param_value

例5.2 ファイアウォールを無効化するためのグローバルパラメーターの設定

以下のコマンドを実行して firewall のグローバルオプションを disabled に設定します。

$ hammer global-parameter set --name firewall --value --disabled

設定を確認するには、以下のコマンドを実行します。

$ hammer global-parameter list
---------|-------------
NAME     | VALUE
---------|-------------
firewall | --disabled
---------|-------------

同様に、hammer で他のパラメータータイプを設定することができます。

  • ドメインパラメーターを設定するには、以下のコマンドを使用します。
$ hammer domain set-parameter \
--name param_name \
--value param_value \
--domain domain_name
  • ホストグループのパラメーターを設定するには、以下のコマンドを使用します。
$ hammer hostgroup set-parameter \
--name param_name \
--value param_value \
--hostgroup hg_name
  • ホストパラメーターを設定するには、以下のコマンドを使用します。
$ hammer host set-parameter \
--name param_name \
--value param_value \
--host h_name
  • スマートクラスパラメーターを更新するには、以下のコマンドを使用します。
$ hammer sc-param \
--name param_name \
--default-value param_value