3.4. ブートストラップスクリプトを使用したホストの登録

非推奨 代わりに 「グローバル登録を使用したホストの登録」 を使用します。

ブートストラップスクリプトを使用して、コンテンツの登録と Puppet の設定を自動化します。ブートストラップスクリプトを使用して、新しいホストを登録したり、RHN、SAM、RHSM、または別の Red Hat Satellite インスタンスから既存のホストを移行したりできます。

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 Client 6 リポジトリーを有効にしたホストのアクティベーションキーを用意する。アクティベーションキーの設定方法は、コンテンツの管理アクティベーションキーの管理 を参照してください。
  • ホストグループを作成済みである。ホストグループの作成方法は 「ホストグループの作成」 を参照してください。

Puppet の考慮事項

ホストグループを Production 環境内に作成した Puppet 環境に関連付けると、Puppet はホストグループからホストを登録する時に Puppet CA 証明書の取得に失敗します。

ホストグループに関連付けて、適切な Puppet 環境を作成するには、以下の手順を実行します。

  1. ディレクトリーを手動で作成します。

    # mkdir /etc/puppetlabs/code/environments/example_environment
  2. Satellite Web UI で、Configure > Environments に移動し、Import environment from をクリックします。ボタン名には、内部または外部の Capsule の FQDN が含まれます。
  3. 作成したディレクトリーを選択し、更新 をクリックします。

手順

  1. root ユーザーで、ホストにログインします。
  2. スクリプトをダウンロードします。

    # curl -O http://satellite.example.com/pub/bootstrap.py
  3. スクリプトを実行可能にします。

    # chmod +x bootstrap.py
  4. ヘルプテキストを表示して、スクリプトが実行可能であることを確認します。

    • Red Hat Enterprise Linux 8 の場合:

      # /usr/libexec/platform-python bootstrap.py -h
    • 他の Red Hat Enterprise Linux バージョンの場合:

      # ./bootstrap.py -h
  5. ご使用の環境に適した値を使用して、ブートストラップコマンドを入力します。

    --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="My_Location" \
      --organization="My_Organization" \
      --hostgroup="My_Host_Group" \
      --activationkey="My_Activation_Key"
    • Red Hat Enterprise Linux 6 または 7 では、次のコマンドを入力します。

      # ./bootstrap.py --login=admin \
      --server satellite.example.com \
      --location="My_Location" \
      --organization="My_Organization" \
      --hostgroup="My_Host_Group" \
      --activationkey="My_Activation_Key"
  6. --login オプションで指定した Satellite ユーザーのパスワードを入力します。

    スクリプトは、進捗の通知を stdout に送信します。

  7. スクリプトでプロンプトが表示されたら、ホストの Puppet 証明書を承認します。Satellite Web UI で Infrastructure > Capsules に移動して、--server オプションで指定した Satellite または Capsule Server を検出します。
  8. アクション コラムのリストから、証明書 を選択します。
  9. アクション コラムで、署名 をクリックして、ホストの Puppet 証明書を承認します。
  10. ホストに戻り、残りのブートストラップ処理が完了するのを確認します。
  11. Satellite Web UI で ホスト > すべてのホスト に移動して、そのホストが、適切なホストグループに接続していることを確認します。
  12. オプション: ホストの登録が完了したら、スクリプトを削除します。

    # rm bootstrap.py

3.4.1. ブートストラップスクリプトのパーミッションの設定

以下の手順を使用して、Satellite ユーザーにブートストラップスクリプトの実行に必要なパーミッションを設定します。Satellite Web UI の代わりに CLI を使用する場合は、CLI 手順 を参照してください。

手順

  1. Satellite Web UI で、Administer > Users に移動します。
  2. 必要な ユーザー名 をクリックして既存のユーザーを選択すると、選択したユーザーの情報を変更するタブが含まれる、新しいペインが表示されます。または、このスクリプトの実行専用に新規ユーザーを作成します。
  3. ロール タブをクリックします。
  4. ロール リストから ホストの編集 および ビューワー を選択します。

    重要

    ホストの編集 ロールを割り当てると、ユーザーは、ホストの編集や削除、ホストの追加が可能です。セキュリティーポリシーの関係上、この方法を使用できない場合は、以下のパーミッションを割り当てた新しいロールを作成して、このロールをユーザーに割り当ててください。

    • view_organizations
    • view_locations
    • view_domains
    • view_hostgroups
    • view_hosts
    • view_architectures
    • view_ptables
    • view_operatingsystems
    • create_hosts
  5. Submit をクリックします。

CLI 手順

  1. ブートストラップスクリプトで最低限必要なパーミッションを持つロールを作成します。この例は、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
  2. 既存のユーザーに新しいロールを割り当てます。

    # hammer user add-role --id user_id --role Bootstrap

    または、新規ユーザーを作成して、新しいロールを新規ユーザーに割り当てることもできます。Hammer を使用したユーザーの作成の詳細については、Red Hat Satellite の管理ユーザーとロールの管理 を参照してください。

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

以下のセクションでは、ブートストラップスクリプトを使用してホストを登録したり、移行したりする例をさらに紹介します。

警告

以下の例では、admin Satellite ユーザーを指定します。セキュリティーポリシーの関係上、この要件を満たせない場合には、新しいロールを作成してブートストラップスクリプトで最小限必要なパーミッションを割り当ててください。詳細は、「ブートストラップスクリプトのパーミッションの設定」 を参照してください。

3.4.2.1. Satellite から別の Satellite へのホストの移行

--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="My_Location" \
    --organization="My_Organization" \
    --hostgroup="My_Host_Group" \
    --activationkey="My_Activation_Key" \
    --force
  • Red Hat Enterprise Linux 6 または 7 では、次のコマンドを入力します。

    # bootstrap.py --login=admin \
    --server satellite.example.com \
    --location="My_Location" \
    --organization="My_Organization" \
    --hostgroup="My_Host_Group" \
    --activationkey="My_Activation_Key" \
    --force

3.4.2.2. Red Hat Network (RHN) または Satellite 5 から Satellite 5 へのホストの移行

ブートストラップスクリプトは、システムがレガシープラットフォームに登録済みであることの指標として、/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="My_Location" \
    --organization="My_Organization" \
    --hostgroup="My_Host_Group" \
    --activationkey="My_Activation_Key" \
    --legacy-purge \
    --legacy-login rhn-user
  • Red Hat Enterprise Linux 6 または 7 では、次のコマンドを入力します。

    # bootstrap.py --login=admin \
    --server satellite.example.com \
    --location="My_Location" \
    --organization="My_Organization" \
    --hostgroup="My_Host_Group" \
    --activationkey="My_Activation_Key" \
    --legacy-purge \
    --legacy-login rhn-user

3.4.2.3. Puppet を使用しない Satellite へのホストの登録

デフォルトでは、ブートストラップスクリプトを使用して、コンテンツ管理および設定管理に対してホストを設定します。既存の設定管理システムがあり、ホストに Puppet をインストールしない場合は --skip-puppet を使用します。

手順

  • Red Hat Enterprise Linux 8 の場合は、以下のコマンドを入力します。

    # /usr/libexec/platform-python bootstrap.py \
    --login=admin \
    --server satellite.example.com \
    --location="My_Location" \
    --organization="My_Organization" \
    --hostgroup="My_Host_Group" \
    --activationkey="My_Activation_Key" \
    --skip-puppet
  • Red Hat Enterprise Linux 6 または 7 では、次のコマンドを入力します。

    # bootstrap.py --login=admin \
    --server satellite.example.com \
    --location="My_Location" \
    --organization="My_Organization" \
    --hostgroup="My_Host_Group" \
    --activationkey="My_Activation_Key" \
    --skip-puppet

3.4.2.4. コンテンツ管理専用としてホストを Satellite に登録

システムをコンテンツホストとして登録し、プロビジョニングおよび設定管理機能を除外するには、--skip-foreman を使用します。

手順

  • Red Hat Enterprise Linux 8 の場合は、以下のコマンドを入力します。

    # /usr/libexec/platform-python bootstrap.py \
    --server satellite.example.com \
    --organization="My_Organization" \
    --activationkey="My_Activation_Key" \
    --skip-foreman
  • Red Hat Enterprise Linux 6 または 7 では、次のコマンドを入力します。

    # bootstrap.py --server satellite.example.com \
    --organization="My_Organization" \
    --activationkey="My_Activation_Key" \
    --skip-foreman

3.4.2.5. ブートストラップスクリプトによるコンシューマー RPM のダウンロード方法の変更

デフォルトでは、ブートストラップスクリプトは HTTP を使用して http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm からコンシューマー 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="My_Location" \
    --organization="My_Organization" \
    --hostgroup="My_Host_Group" \
    --activationkey="My_Activation_Key" \
    --download-method https
  • Red Hat Enterprise Linux 6 または 7 では、次のコマンドを入力します。

    # bootstrap.py --login=admin \
    --server satellite.example.com \
    --location="My_Location" \
    --organization="My_Organization" \
    --hostgroup="My_Host_Group" \
    --activationkey="My_Activation_Key" \
    --download-method https

3.4.2.6. ホストの 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="My_Location" \
    --organization="My_Organization" \
    --hostgroup="My_Host_Group" \
    --activationkey="My_Activation_Key" \
    --ip 192.x.x.x
  • Red Hat Enterprise Linux 6 または 7 では、次のコマンドを入力します。

    # bootstrap.py --login=admin \
    --server satellite.example.com \
    --location="My_Location" \
    --organization="My_Organization" \
    --hostgroup="My_Host_Group" \
    --activationkey="My_Activation_Key" \
    --ip 192.x.x.x

3.4.2.7. ホストでのリモート実行の有効化

--rex および --rex-user を使用して、リモート実行を有効にし、指定したユーザーに必要な SSH 鍵を追加します。

手順

  • Red Hat Enterprise Linux 8 の場合は、以下のコマンドを入力します。

    # /usr/libexec/platform-python bootstrap.py \
    --login=admin \
    --server satellite.example.com \
    --location="My_Location" \
    --organization="My_Organization" \
    --hostgroup="My_Host_Group" \
    --activationkey="My_Activation_Key" \
    --rex \
    --rex-user root
  • Red Hat Enterprise Linux 6 または 7 では、次のコマンドを入力します。

    # bootstrap.py --login=admin \
    --server satellite.example.com \
    --location="My_Location" \
    --organization="My_Organization" \
    --hostgroup="My_Host_Group" \
    --activationkey="My_Activation_Key" \
    --rex \
    --rex-user root

3.4.2.8. 登録時のホストのドメイン作成

ホストレコードを作成するには、スクリプトを実行する前に、ホストの DNS ドメインが Satellite に存在している必要があります。ドメインが存在しない場合は、--add-domain を使用して追加します。

手順

  • Red Hat Enterprise Linux 8 の場合は、以下のコマンドを入力します。

    # /usr/libexec/platform-python bootstrap.py \
    --login=admin \
    --server satellite.example.com \
    --location="My_Location" \
    --organization="My_Organization" \
    --hostgroup="My_Host_Group" \
    --activationkey="My_Activation_Key" \
    --add-domain
  • Red Hat Enterprise Linux 6 または 7 では、次のコマンドを入力します。

    # bootstrap.py --login=admin \
    --server satellite.example.com \
    --location="My_Location" \
    --organization="My_Organization" \
    --hostgroup="My_Host_Group" \
    --activationkey="My_Activation_Key" \
    --add-domain

3.4.2.9. ホストの代替 FQDN の指定

ホストのホスト名が FQDN でない場合や、RFC に準拠していない場合 (アンダースコアなどの文字が含まれている) には、ホスト名の検証の段階で、スクリプトが失敗します。Satellite で使用可能な FQDN を使用するようにホストを更新できない場合は、ブートストラップスクリプトを使用して別の FQDN を指定してください。

手順

  1. 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
  2. --fqdn を使用して、Satellite にレポートする FQDN を指定します。

    • Red Hat Enterprise Linux 8 の場合は、以下のコマンドを入力します。

      # /usr/libexec/platform-python bootstrap.py --login=admin \
      --server satellite.example.com \
      --location="My_Location" \
      --organization="My_Organization" \
      --hostgroup="My_Host_Group" \
      --activationkey="My_Activation_Key" \
      --fqdn node100.example.com
    • Red Hat Enterprise Linux 6 または 7 では、次のコマンドを入力します。

      # bootstrap.py --login=admin \
      --server satellite.example.com \
      --location="My_Location" \
      --organization="My_Organization" \
      --hostgroup="My_Host_Group" \
      --activationkey="My_Activation_Key" \
      --fqdn node100.example.com