3.4. ブートストラップスクリプトを使ったホストの Red Hat Satellite への登録
ブートストラップスクリプトを使用して、コンテンツの登録と Puppet の設定を自動化します。新しいホストの登録や、既存のホストの Satellite 5、RHN、SAM または RHSM から Red Hat Satellite 6 への移行には、ブートストラップスクリプトを使用できます。
Satellite Server のベースオペレーティングシステムに、デフォルトで katello-client-bootstrap
パッケージがインストールされています。bootstrap.py
スクリプトは、/var/www/html/pub/
ディレクトリーにインストールされており、satellite.example.com/pub/bootstrap.py
でホストに公開されます。このスクリプトでは、/usr/share/doc/katello-client-bootstrap-version/README.md
ファイルにドキュメントが含まれます。
ブートストラップスクリプトを使用するには、ホストにスクリプトをインストールする必要があります。スクリプトは 1 度しか必要ではなく、また、root
ユーザー専用であるため、/root
または /usr/local/sbin
に配置して、使用後に削除できます。この手順では、/root
を使用します。
前提条件
-
Satellite ユーザーに、ブートストラップスクリプト実行に必要なパーミッションを割り当て済みである。この手順の例では、
admin
ユーザーを指定します。セキュリティーポリシーの関係上、この要件を満たせない場合には、新しいロールを作成して最小限必要なパーミッションを割り当てて、スクリプトを実行するユーザーにこのロールを追加してください。詳細は、「ブートストラップスクリプトのパーミッションの設定」 を参照してください。 - Satellite Tools 6.9 リポジトリーを有効にしたホストのアクティベーションキーを用意する。アクティベーションキーの設定方法はコンテンツ管理ガイドの アクティベーションキーの管理 を参照してください。
- ホストグループを作成済みである。ホストグループの作成方法は 「ホストグループの作成」 を参照してください。
Puppet の考慮事項
ホストグループを Production
環境内に作成した Puppet 環境に関連付けると、Puppet はホストグループからホストを登録する時に Puppet CA 証明書の取得に失敗します。
ホストグループに関連付けて、適切な Puppet 環境を作成するには、以下の手順を実行します。
手動でディレクトリーを作成して、所有者を変更します。
# mkdir /etc/puppetlabs/code/environments/example_environment # chown apache /etc/puppetlabs/code/environments/example_environment
- 設定 > 環境 へと移動し、環境をインポート をクリックします。ボタン名には、内部または外部の Capsule の FQDN が含まれます。
- 作成したディレクトリーを選択し、更新 をクリックします。
手順
-
root
ユーザーで、ホストにログインします。 スクリプトをダウンロードします。
# curl -O http://satellite.example.com/pub/bootstrap.py
スクリプトを実行可能にします。
# chmod +x bootstrap.py
ヘルプテキストを表示して、スクリプトが実行可能であることを確認します。
Red Hat Enterprise Linux 8 の場合:
# /usr/libexec/platform-python bootstrap.py -h
他の Red Hat Enterprise Linux バージョンの場合:
# ./bootstrap.py -h
ご使用の環境に適した値を使用して、ブートストラップコマンドを入力します。
--server
オプションの場合は、Satellite Server または Capsule Server の FQDN を指定します。オプションが--location
、--organization
、および--hostgroup
の場合は、オプションへの引数として、ラベルではなく引用符で囲まれた名前を使用します。詳細なユースケースは 「詳細なブートストラップスクリプトの設定」 を参照してください。Red Hat Enterprise Linux 8 の場合は、以下のコマンドを入力します。
# /usr/libexec/platform-python bootstrap.py \ --login=admin \ --server satellite.example.com \ --location="Example Location" \ --organization="Example Organization" \ --hostgroup="Example Host Group" \ --activationkey=activation_key
Red Hat Enterprise Linux 5、6、7 の場合は、以下のコマンドを入力します。
# ./bootstrap.py --login=admin \ --server satellite.example.com \ --location="Example Location" \ --organization="Example Organization" \ --hostgroup="Example Host Group" \ --activationkey=activation_key
--login
オプションで指定した Satellite ユーザーのパスワードを入力します。スクリプトは、進捗の通知を stdout に送信します。
-
スクリプトでプロンプトが表示されたら、ホストの Puppet 証明書を承認します。Satellite Web UI で インフラストラクチャー > Capsules に移動して、
--server
オプションで指定した Satellite または Capsule Server を検出します。 - アクション コラムの一覧から、証明書 を選択します。
- アクション コラムで、署名 をクリックして、ホストの Puppet 証明書を承認します。
- ホストに戻り、残りのブートストラップ処理が完了するのを確認します。
- Satellite Web UI で ホスト > すべてのホスト に移動して、そのホストが、適切なホストグループに接続していることを確認します。
オプション: ホストの登録が完了したら、スクリプトを削除します。
# rm bootstrap.py
3.4.1. ブートストラップスクリプトのパーミッションの設定
以下の手順を使用して、Satellite ユーザーにブートストラップスクリプトの実行に必要なパーミッションを指定します。
手順
- Satellite Web UI で、Administer > Users に移動します。
- 必要な ユーザー名 をクリックして既存のユーザーを選択すると、選択したユーザーの情報を変更するタブが含まれる、新しいペインが表示されます。または、このスクリプトの実行専用に新規ユーザーを作成します。
- ロール タブをクリックします。
ロール リストから ホストの編集 および ビューワー を選択します。
重要ホストの編集 ロールを割り当てると、ユーザーは、ホストの編集や削除、ホストの追加が可能です。セキュリティーポリシーの関係上、この方法を使用できない場合は、以下のパーミッションを割り当てた新しいロールを作成して、このロールをユーザーに割り当ててください。
-
view_organizations
-
view_locations
-
view_domains
-
view_hostgroups
-
view_hosts
-
view_architectures
-
view_ptables
-
view_operatingsystems
-
create_hosts
-
- 送信 をクリックします。
CLI をご利用の場合
ブートストラップスクリプトで最低限必要なパーミッションを持つロールを作成します。この例は、Bootstrap という名前のロールを作成します。
# ROLE='Bootstrap' hammer role create --name "$ROLE" hammer filter create --role "$ROLE" --permissions view_organizations hammer filter create --role "$ROLE" --permissions view_locations hammer filter create --role "$ROLE" --permissions view_domains hammer filter create --role "$ROLE" --permissions view_hostgroups hammer filter create --role "$ROLE" --permissions view_hosts hammer filter create --role "$ROLE" --permissions view_architectures hammer filter create --role "$ROLE" --permissions view_ptables hammer filter create --role "$ROLE" --permissions view_operatingsystems hammer filter create --role "$ROLE" --permissions create_hosts
既存のユーザーに新しいロールを割り当てます。
# hammer user add-role --id user_id --role Bootstrap
または、新規ユーザーを作成して、新しいロールを新規ユーザーに割り当てることもできます。Hammer を使用したユーザーの作成方法は、Red Hat Satellite 管理ガイドの ユーザーとロールの管理 を参照してください。
3.4.2. 詳細なブートストラップスクリプトの設定
以下のセクションでは、ブートストラップスクリプトを使用してホストを登録したり、移行したりする例をさらに紹介します。
以下の例では、admin
Satellite ユーザーを指定します。セキュリティーポリシーの関係上、この要件を満たせない場合には、新しいロールを作成してブートストラップスクリプトで最小限必要なパーミッションを割り当ててください。詳細は、「ブートストラップスクリプトのパーミッションの設定」 を参照してください。
Satellite 6 から別の Satellite 6 へのホストの移行
--force
を指定してこのスクリプトを使用し、以前の Satellite から katello-ca-consumer-*
パッケージを削除し、新しい Satellite で katello-ca-consumer-*
パッケージをインストールします。
Red Hat Enterprise Linux 8 の場合は、以下のコマンドを入力します。
# /usr/libexec/platform-python bootstrap.py \ --login=admin \ --server satellite.example.com \ --location="Example Location" \ --organization="Example Organization" \ --hostgroup="Example Host Group" \ --activationkey=activation_key \ --force
Red Hat Enterprise Linux 5、6、7 の場合は、以下のコマンドを入力します。
# bootstrap.py --login=admin \ --server satellite.example.com \ --location="Example Location" \ --organization="Example Organization" \ --hostgroup="Example Host Group" \ --activationkey=activation_key \ --force
Red Hat Network (RHN) または Satellite 5 から Satellite 6 へのホストの移行
ブートストラップスクリプトは、システムがレガシープラットフォームに登録済みであることの指標として、/etc/syconfig/rhn/systemid
が存在し、RHN の接続が有効であることを検出します。次にこのスクリプトは、rhn-classic-migrate-to-rhsm
を呼び出して RHN からシステムを移行します。このスクリプトでは監査上の理由で、システムのレガシープロファイルはデフォルトで削除されません。レガシープロファイルを削除するには、--legacy-purge
を使用してから、--legacy-login
を使用して適切なパーミッションのあるユーザーアカウントを指定し、プロファイルを削除します。プロンプトが表示されたらユーザーアカウントのパスワードを入力します。
Red Hat Enterprise Linux 8 の場合は、以下のコマンドを入力します。
# /usr/libexec/platform-python bootstrap.py \ --login=admin \ --server satellite.example.com \ --location="Example Location" \ --organization="Example Organization" \ --hostgroup="Example Host Group" \ --activationkey=activation_key \ --legacy-purge \ --legacy-login rhn-user
Red Hat Enterprise Linux 5、6、7 の場合は、以下のコマンドを入力します。
# bootstrap.py --login=admin \ --server satellite.example.com \ --location="Example Location" \ --organization="Example Organization" \ --hostgroup="Example Host Group" \ --activationkey=activation_key \ --legacy-purge \ --legacy-login rhn-user
Satellite 6 にホストを登録して Puppet 設定を省略する手順
デフォルトでは、ブートストラップスクリプトを使用して、コンテンツ管理および設定管理に対してホストを設定します。既存の設定管理システムがあり、ホストに Puppet をインストールしない場合は --skip-puppet
を使用します。
Red Hat Enterprise Linux 8 の場合は、以下のコマンドを入力します。
# /usr/libexec/platform-python bootstrap.py \ --login=admin \ --server satellite.example.com \ --location="Example Location" \ --organization="Example Organization" \ --hostgroup="Example Host Group" \ --activationkey=activation_key \ --skip-puppet
Red Hat Enterprise Linux 5、6、7 の場合は、以下のコマンドを入力します。
# bootstrap.py --login=admin \ --server satellite.example.com \ --location="Example Location" \ --organization="Example Organization" \ --hostgroup="Example Host Group" \ --activationkey=activation_key \ --skip-puppet
コンテンツ管理専用としてホストを Satellite 6 に登録する手順
システムをコンテンツホストとして登録し、プロビジョニングおよび設定管理機能を除外するには、--skip-foreman
を使用します。
Red Hat Enterprise Linux 8 の場合は、以下のコマンドを入力します。
# /usr/libexec/platform-python bootstrap.py \ --server satellite.example.com \ --organization="Example Organization" \ --activationkey=activation_key \ --skip-foreman
Red Hat Enterprise Linux 5、6、7 の場合は、以下のコマンドを入力します。
# bootstrap.py --server satellite.example.com \ --organization="Example Organization" \ --activationkey=activation_key \ --skip-foreman
ブートストラップスクリプトがコンシューマー RPM のダウンロードに使用する方法の変更
デフォルトでは、ブートストラップスクリプトは HTTP を使用してコンシューマー RPM (server.example.com/pub/katello-ca-consumer-latest.noarch.rpm) をダウンロードします。環境によっては、ホストと Satellite との間のみ HTTPS を許可する場合があります。--download-method
を使用して、ダウンロードメソッドを HTTP から HTTPS へ変更します。
Red Hat Enterprise Linux 8 の場合は、以下のコマンドを入力します。
# /usr/libexec/platform-python bootstrap.py \ --login=admin \ --server satellite.example.com \ --location="Example Location" \ --organization="Example Organization" \ --hostgroup="Example Host Group" \ --activationkey=activation_key \ --download-method https
Red Hat Enterprise Linux 5、6、7 の場合は、以下のコマンドを入力します。
# bootstrap.py --login=admin \ --server satellite.example.com \ --location="Example Location" \ --organization="Example Organization" \ --hostgroup="Example Host Group" \ --activationkey=activation_key \ --download-method https
ホストの IP アドレスの Satellite への指定
インターフェイスが複数あるホスト、または 1 つのインターフェイスに IP アドレスが複数あるホストでは、IP アドレスの自動検出設定を無効にして、特定の IP アドレスを Satellite に指定する必要がでてくる場合があります。--ip
を使用してください。
Red Hat Enterprise Linux 8 の場合は、以下のコマンドを入力します。
# /usr/libexec/platform-python bootstrap.py \ --login=admin \ --server satellite.example.com \ --location="Example Location" \ --organization="Example Organization" \ --hostgroup="Example Host Group" \ --activationkey=activation_key \ --ip 192.x.x.x
Red Hat Enterprise Linux 5、6、7 の場合は、以下のコマンドを入力します。
# bootstrap.py --login=admin \ --server satellite.example.com \ --location="Example Location" \ --organization="Example Organization" \ --hostgroup="Example Host Group" \ --activationkey=activation_key \ --ip 192.x.x.x
ホストでのリモート実行の有効化
--rex
および --rex-user
を使用して、リモート実行を有効にし、指定したユーザーに必要な SSH 鍵を追加します。
Red Hat Enterprise Linux 8 の場合は、以下のコマンドを入力します。
# /usr/libexec/platform-python bootstrap.py \ --login=admin \ --server satellite.example.com \ --location="Example Location" \ --organization="Example Organization" \ --hostgroup="Example Host Group" \ --activationkey=activation_key \ --rex \ --rex-user root
Red Hat Enterprise Linux 5、6、7 の場合は、以下のコマンドを入力します。
# bootstrap.py --login=admin \ --server satellite.example.com \ --location="Example Location" \ --organization="Example Organization" \ --hostgroup="Example Host Group" \ --activationkey=activation_key \ --rex \ --rex-user root
登録時のホストのドメイン作成
ホストレコードを作成するには、スクリプトを実行する前に、ホストの DNS ドメインが Satellite に存在している必要があります。ドメインが存在しない場合は、--add-domain
を使用して追加します。
Red Hat Enterprise Linux 8 の場合は、以下のコマンドを入力します。
# /usr/libexec/platform-python bootstrap.py \ --login=admin \ --server satellite.example.com \ --location="Example Location" \ --organization="Example Organization" \ --hostgroup="Example Host Group" \ --activationkey=activation_key \ --add-domain
Red Hat Enterprise Linux 5、6、7 の場合は、以下のコマンドを入力します。
# bootstrap.py --login=admin \ --server satellite.example.com \ --location="Example Location" \ --organization="Example Organization" \ --hostgroup="Example Host Group" \ --activationkey=activation_key \ --add-domain
ホストへの別の FQDN の指定
ホストのホスト名が FQDN でない場合や、RFC に準拠していない場合 (アンダースコアなどの文字が含まれている) には、ホスト名の検証の段階で、スクリプトが失敗します。Satellite で使用可能な FQDN を使用するようにホストを更新できない場合は、ブートストラップスクリプトを使用して別の FQDN を指定してください。
Hammer を使用して
create_new_host_when_facts_are_uploaded
とcreate_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
--fqdn
を使用して、Satellite にレポートする FQDN を指定します。Red Hat Enterprise Linux 8 の場合は、以下のコマンドを入力します。
# /usr/libexec/platform-python bootstrap.py --login=admin \ --server satellite.example.com \ --location="Example Location" \ --organization="Example Organization" \ --hostgroup="Example Host Group" \ --activationkey=activation_key \ --fqdn node100.example.com
Red Hat Enterprise Linux 5、6、7 の場合は、以下のコマンドを入力します。
# bootstrap.py --login=admin \ --server satellite.example.com \ --location="Example Location" \ --organization="Example Organization" \ --hostgroup="Example Host Group" \ --activationkey=activation_key \ --fqdn node100.example.com