第3章 ホストの登録
Satellite Server または Capsule Server にホストを登録する方法は、主に 3 つあります。
(デフォルトの方法) Satellite から
curl
コマンドを生成し、ホスト (数に制限なし) からこのコマンドを実行して、これらのホストをグローバル登録テンプレートを使用して登録します。この方法は、新規インストールしたホストにも、Satellite 5 や別の Satellite 6 に登録済みのホストなどにも適しています。この方法を使うと、Satellite への登録時に Satellite SSH 鍵をホストにデプロイし、リモート実行ジョブのホストを有効にすることもできます。リモート実行ジョブの詳細は、Configuring and Setting up Remote Jobs を参照してください。
この方法を使うと、Satellite への登録時に Red Hat Insights でホストを設定することもできます。Satellite ホストと Insights を使用する方法は、Red Hat Insights を使用したホストの管理 を参照してください。
-
コンシューマー RPM (
server.example.com/pub/katello-ca-consumer-latest.noarch.rpm
) をダウンロードしてインストールしてから、Subscription Manager を実行します。この方法は、新規インストールしたホストに適しています。 - (非推奨) ブートストラップスクリプト (server.example.com/pub/bootstrap.py) をダウンロードして実行します。この方法は、新規インストールしたホストにも、Satellite 5 や別の Satellite 6 に登録済みのホストなどにも適しています。
Atomic Host を Satellite Server または Capsule Server に登録することもできます。
次のいずれかの手順を使用して、ホストを登録します。
以下の手順を使用して、ホストツールをインストールして設定します。
ホストでサポート対象のオペレーティングシステム
ホストは、以下の Red Hat Enterprise Linux バージョンのいずれかを使用している必要があります。
- 6.1 以降*
- 7.0 以上
- 8.0 以降
Red Hat Enterprise Linux バージョン 6.1、6.2 および 6.3 では、subscription-manager
と関連のパッケージを手動で更新する必要があります。詳細は、https://access.redhat.com/solutions/1256763 を参照してください。
サポートされるアーキテクチャー
Red Hat Enterprise Linux のすべてのアーキテクチャーがサポートされます。
- i386
- x86_64
- s390x
- ppc_64
3.1. Red Hat Satellite へのホストの登録
Satellite で curl
コマンドを生成し、ホストでこのコマンドを実行することで、ホストを Satellite に登録できます。この方法では、global registration
テンプレートと host initial configuration
という 2 つのテンプレートを使用します。これにより、ホスト登録プロセスを完全に制御できます。Administer > Settings に移動し、Provisioning タブをクリックすると、デフォルトのテンプレートを設定できます。
前提条件
-
curl
コマンドを生成する Satellite ユーザーには、create_hosts
パーミッションが必要。 - 登録するホストで root 権限がある。
- アクティベーションキーを作成している。
-
オプション: Red Hat Insights にホストを登録する場合は、
rhel-7-server-rpms
リポジトリーを同期して、使用するアクティベーションキーで利用できるようにする必要があります。これは、insights-client
パッケージをインストールするために必要です。 オプション: Capsule を使用してホストを登録する場合は、この Capsule で 登録 機能が有効になっていることを確認してください。
インフラストラクチャー > Capsules に移動して、使用する Capsule をクリックし、アクティブな機能 リストから 登録 機能を特定します。
オプション: 登録 機能が Capsule で有効になっていない場合は、Capsule で以下のコマンドを入力して有効にします。
# satellite-installer \ --foreman-proxy-registration true \ --foreman-proxy-templates true \ --foreman-proxy-template-url 'http://capsule.example.com'
手順
- Hosts > Register Hostに移動します。
- オプション: 別の Organization を選択します。
- オプション: 別の Location を選択します。
- オプション: Host Groupリストから、ホストと関連付けるホストグループを選択します。Host group からの値を継承するフィールド: Operating system、Activation Keys、Lifecycle environment。
- オプション: Capsule 一覧から、ホストの登録に使用する Capsule を選択します。外部 Capsule を使用しない場合は、内部の Capsule を選択する必要があります。
- オプション: Operating system リストから、登録するホストのオペレーティングシステムを選択します。
オプション: 最初の呼び出しを非セキュアにする場合は、Insecure オプションを選択します。この最初の呼び出し中に、ホストは Satellite から CA ファイルをダウンロードします。ホストは、この CA ファイルを使用して Satellite に接続し、今後のすべての呼び出しは安全になります。
非セキュアな呼び出しは避けることをお勧めします。
Satellite とホスト間のネットワークに存在する攻撃者が、初回の安全ではない呼び出しから CA ファイルをフェッチする場合、攻撃者は登録したホストと JSON Web Tokens (JWT) 間の API 呼び出しの内容にアクセスできます。そのため、登録中の SSH 鍵のデプロイを選択した場合、攻撃者は SSH 鍵を使用してホストにアクセスできます。
代わりに、ホストを登録する前に、各ホストに手動で CA ファイルをコピーしてインストールできます。
そのためには、Administer > Settings > Authentication に移動し、SSL CA file 設定を特定することで、Satellite が CA ファイルを保存する場所を検出します。
CA ファイルをホストの
/etc/pki/ca-trust/source/anchors/
ディレクトリーにコピーし、以下のコマンドを入力します。# update-ca-trust enable # update-ca-trust
次に、以下のようなセキュアな
curl
コマンドを使用してホストを登録します。# curl -sS https://satellite.example.com/register ...
以下は、
--insecure
オプションを指定したcurl
コマンドの例です。# curl -sS --insecure https://satellite.example.com/register ...
- Advanced タブを選択します。
Setup REX リストから、Satellite SSH 鍵をホストにデプロイするかどうかを選択します。
Yes
に設定すると、パブリック SSH キーが登録済みホストにインストールされます。継承された値はhost_registration_remote_execution
パラメーターに基づいています。たとえば、ホストグループ、オペレーティングシステム、または組織から継承できます。上書きされると、選択した値がホストパラメーターレベルに保存されます。Setup Insights l 一覧から、
insights-client
をインストールして、ホストを Insights に登録したいかどうかを選択します。Insights ツールは、Red Hat Enterprise Linux でのみ利用できます。他のオペレーティングシステムには影響ありません。
登録されたマシンで以下のリポジトリーを有効にする必要があります。
-
RHEL 6:
rhel-6-server-rpms
-
RHEL 7:
rhel-7-server-rpms
RHEL 8:
rhel-8-for-x86_64-appstream-rpms
insights-client
パッケージは、RHEL 8 が最小インストールオプションでデプロイされた環境を除いて、デフォルトで RHEL 8 にインストールされます。
-
RHEL 6:
オプション: Token lifetime (hours) フィールドで、Satellite が認証に使用する JSON Web トークン (JWT) の有効期間を変更します。このトークンの期間は、生成された
curl
コマンドが機能する期間を定義します。期間は、0 - 999 999 時間または無制限に設定できます。Satellite は、ホストの認証に
curl
コマンドを生成するユーザーのパーミッションを適用する点に注意してください。ユーザーが追加のパーミッションを失ったり取得したりすると、JWT のパーミッションも変わってきます。そのため、トークン期間中にユーザーのパーミッションを削除、ブロック、または変更しないでください。JWT の範囲は登録エンドポイントのみに制限されているため、その他の場所では使用できません。
- オプション: リモート実行インターフェイス フィールドに、ホストが SSH 接続に使用する必要があるネットワークインターフェイスの識別子を入力します。このフィールドが空の場合、Satellite はデフォルトのネットワークインターフェイスを使用します。
-
オプション: Install packages フィールドに、登録時にホストにインストールするパッケージを (スペースで区切って) リストします。これは、
host_packages
パラメーターで設定できます。 -
オプション: 登録時にホスト上のすべてのパッケージを更新するには、Update packages オプションを選択します。これは、
host_update_packages
パラメーターで設定できます。 -
オプション: Repository フィールドに、登録を実行する前に追加するリポジトリーを入力します。たとえば、登録の目的で
subscription-manager
パッケージを利用できるようにすると便利です。Red Hat ファミリーのディストリビューションの場合、リポジトリーの URL を入力します (例::http://rpm.example.com/
)。 - オプション: Repository GPG key URL フィールドで、公開鍵を指定して、GPG 署名付きパッケージの署名を確認します。GPG 公開鍵ヘッダーを持つ ASCII 形式で指定する必要があります。
- Activation Keys フィールドで、ホストに割り当てるアクティベーションキーを 1 つ以上入力します。
- オプション: Lifecycle environment を選択します。
- オプション: サブスクリプションマネージャーのエラーを無視する場合は、Ignore errors オプションを選択します。
-
オプション: 登録前に
katello-ca-consumer
rpm を削除し、--force
引数でsubscription-manager
を実行する場合は、Force オプションを選択します。 - Generate ボタンをクリックします。
-
生成された
curl
コマンドをコピーします。 -
登録するホストで、
curl
コマンドをroot
として実行します。
3.1.1. 登録テンプレートのカスタマイズ
登録プロセスをカスタマイズする場合は、本セクションの情報を使用します。
Satellite のデフォルトテンプレートはすべてロックされている点に注意してください。登録プロセスをカスタマイズする場合は、デフォルトのテンプレートのクローンを作成し、クローンを編集する必要があります。次に、Administer > Settings > Provisioning で、デフォルトのグローバル登録テンプレートと、カスタムテンプレートを参照するようにデフォルトの'Host initial configuration'テンプレートを変更します。
テンプレート
登録プロセスでは、以下の登録テンプレートを使用します。
-
グローバル登録 テンプレートには、ホストを Satellite に登録するための手順が含まれています。このテンプレートは、ホストが
/register
エンドポイントにアクセスするとレンダリングされます。 - Linux host_init_config default テンプレートには、登録後にホストの初期設定を行う手順が含まれます。
グローバルパラメーター
以下のグローバルパラメーターを設定するには、設定 > グローバルパラメーター に移動します。
-
host_registration_remote_execution
パラメーターはremote_execution_ssh_keys
スニペットで使用されます。デフォルト値はtrue
です。 -
host_registration_insights
パラメーターはinsights
スニペットで使用され、デフォルト値はtrue
です。 -
host_packages
パラメーターは、ホストにパッケージをインストールするためのものです。 -
remote_execution_ssh_keys
、remote_execution_ssh_user
、remote_execution_create_user
、remote_execution_effective_user_method
パラメーターはremote_execution_ssh_keys
で使用されます。詳細は、スニペットの詳細を参照してください。 encode_grub
パラメーターは、ホストの暗号化されたブートローダーパスワードの設定を有効にするためのものであり、デフォルト値はfalse
です。実際にパスワードを設定するには、テンプレートで
grub_pass
マクロを使用します。
スニペット
スニペットは、Linux host_init_config default テンプレートで使用されます。
-
remote_execution_ssh_keys
スニペットは、host_registration_remote_execution
パラメーターがtrue
の場合にのみ、SSH キーをホストにデプロイします。 -
insights
スニペットと、グローバルパラメーターhost_registration_insights
が true に設定されている場合、Red Hat Insights クライアントをダウンロードおよびインストールします。 -
puppetlabs_repo
およびpuppet_setup
スニペットは、ホストに Puppet エージェントをダウンロードし、インストールします (puppet マスターがある場合のみ)。 -
host_init_config_post
は、ホストの初期設定時のユーザーのカスタムアクションの空のスニペットです。
Variables
この表は、Global Registration
テンプレートで使用される変数について説明しています。
変数 | コマンド引数 | 説明 |
---|---|---|
| none | 現在の認証ユーザーオブジェクト |
|
|
|
|
|
|
|
| ホストのホストグループです。 |
|
| ホストのオペレーティングシステム |
|
|
登録したホストの |
|
|
登録済みホストの |
|
| リモート実行用に、ホストのデフォルトインターフェイスを設定します。 |
|
| インストールするパッケージ |
|
| ホストにリポジトリーを追加します。 |
|
| リポジトリー GPG キー形式の URL を設定します。 |
|
| ホストのアクティベーションキー |
|
|
|
|
| subscription-manager エラーを無視します。 |
|
| ライフサイクル環境 |
| none |
|