Red Hat Training

A Red Hat training course is available for Red Hat Satellite

第11章 Satellite でのベアメタルホストの検出

Red Hat Satellite 6.2 にはすでにインストールされている Discovery プラグインが同梱されています。Discovery プラグインはプロビジョニングネットワーク上の不明ホストのベアメタル検出を自動化します。これらの新規ホストは Satellite Server に登録され、クライアントの Puppet エージェントは、シリアル ID、ネットワークインターフェース、メモリーおよびディスク情報などの Facter が収集するシステムのファクトをアップロードします。登録後は、ホストは Satellite Web UI の 検出されたホスト ページに表示されます。事前に定義された検出ルールを使用して、プロビジョニングを手動 (Web UI、CLI、または API を使用) か、または自動で開始することができます。
Discovery プラグインは、プロビジョニングネットワークと Satellite Server インスタンスの両方に直接アクセスできる Satellite Capsule Server 経由で通信します。Satellite Server からホストを直接検出することができますが、Red Hat では以下の設定の使用を推奨しています。
Satellite Server (Satellite Server Discovery plug-in) <--> Satellite Capsule (Satellite Capsule Discovery plug-in) <--> Discovered Host (Satellite Discovery image)
Satellite Discovery プラグインは 3 つの異なるコンポーネントで構成されています。
Satellite Server Discovery プラグイン
これは Satellite Server で実行され、検出されたホストと使用できるように API および UI 機能を提供します。tfm-rubygem-foreman_discovery パッケージにはこのプラグインが含まれます。
Satellite Capsule Server Discovery プラグイン
これは、プロビジョニングネットワークで検出されたホストと Satellite Server 間の通信プロキシーです。rubygem-smart_proxy_discovery パッケージにはこのプラグインが含まれます。
Satellite Discovery イメージ
これは、Red Hat Enterprise Linux をベースとする最小オペレーティングシステムです。このオペレーティングシステムはホスト上で PXE で起動し、初期のハードウェア情報を取得し、Satellite Server にチェックインするために使用されます。検出されたホストは、Anaconda で再起動するまで Satellite Discovery イメージを実行し続けます。その後にプロビジョニングプロセスを開始します。foreman-discovery-image パッケージにはこのイメージが含まれます。これは TFTP サービスを提供する Satellite Capsule Server にインストールされる必要があります。

11.1. Satellite Discovery プラグインの設定

以下のセクションでは、Satellite Discovery プラグインを設定する方法および Satellite Server で PXE 起動テンプレートを準備する方法について説明します。

11.1.1. Satellite Discovery イメージのデプロイ

Satellite Discovery イメージを含むパッケージを、TFTP サービスを提供する Satellite Capsule Server (Satellite Server 自体ではない) にインストールします。
# yum install foreman-discovery-image
このパッケージには、Linux カーネルと PXE で起動される検出されるホストに使用される起動可能な ISO ファイルとしての初期 RAM ディスクイメージが含まれます。以下のコマンドを実行してパッケージの内容を検査します。以下のような出力が生成されます。
$ rpm -ql foreman-discovery-image
/usr/share/foreman-discovery-image
/usr/share/foreman-discovery-image/fdi-image-rhel_7-2.1.0-20150212.1.iso
このパッケージのインストール時に、カーソルと ISO ファイルのイメージが TFTP ディレクトリーに抽出され、イメージおよびカーネルの最新バージョンへのシンボリックリンクが作成されます。PXE 起動のプロビジョニングテンプレートのシンボリックリンクを使用すると、foreman-discovery-image パッケージがアップグレードされるたびにテンプレートのバージョンを変更する必要はありません。以下は例になります。
$ find /var/lib/tftpboot/boot
/var/lib/tftpboot/boot
/var/lib/tftpboot/boot/fdi-image-rhel_7-2.1.0-20150212.1-img
/var/lib/tftpboot/boot/fdi-image-rhel_7-2.1.0-20150212.1-vmlinuz
/var/lib/tftpboot/boot/fdi-image-rhel_7-img
/var/lib/tftpboot/boot/fdi-image-rhel_7-vmlinuz
上記の出力の最後の 2 行には、PXE 起動プロビジョニングテンプレートで使用されるシンボリックリンクが含まれます。詳細は、「PXE 起動の設定」 を参照してください。

注記

現時点では、Red Hat Enterprise Linux 6 の Satellite 6 インストールの場合でも Red Hat Enterprise Linux 7 Discovery イメージのみが提供されます。foreman-discovery-image パッケージのアップグレード時に実行中の検出されたホストがある場合、すぐにそれらすべてを再起動してイメージの更新されたバージョンをロードします。これは、Satellite 6 Web UI、CLI、または API で実行できます。

11.1.2. PXE 起動の設定

不明のホストがプロビジョニングネットワークで起動する場合、Satellite Server は、ローカルハードドライブから起動するという単一オプションを含む PXELinux ブートメニューを提供します。以下の手順では、ハードウェアの検出を有効にするためにこの動作を変更する方法について説明します。これには、PXE Linux グローバルデフォルトテンプレートの複数の変数の変更が必要になります。これらの変数については以下で説明します。
  • テンプレートの KERNEL および APPEND 行は、foreman-discovery-image パッケージのインストール時に作成されるシンボリックリンクを使用します (「Satellite Discovery イメージのデプロイ」 を参照してください)。URL は /var/lib/tftpboot/ ディレクトリーに相対しています。APPEND パラメーターが単一行に指定されていることを確認します。
  • proxy.type 変数は proxy (推奨) または foreman のいずれかに設定できます。変数が proxy に設定されている場合、すべての通信は Satellite Capsule Server を経由します。変数が foreman に設定されている場合、Satellite Server に直接通信されます。本章の例では、proxy.typeproxy に設定されていることを想定しています。
  • proxy.url 変数は、proxy.type 設定に応じて Satellite Capsule Server または Satellite Server の URL を指定します。HTTP および HTTPS 設定はどちらもサポートされます。Satellite Capsule Server にアクセスする場合 ((proxy.type=proxy) のデフォルトポートは 9090 で、Satellite Server との直接通信の場合 (proxy.type=foreman) は 80 です 。
  • IPAPPEND 2 設定は、プロビジョニングネットワークに接続されたインターフェースを検出します。イメージは、このオプションが削除または変更されている場合には正常に起動しません。

手順11.1 PXE 起動を設定するには、以下を実行します。

  1. Satellite Web UI で、ホストプロビジョニングテンプレート に移動します。
  2. PXELinux global default テンプレートを編集します。以下のメニューエントリーをテンプレートに追加します。
    LABEL discovery
    MENU LABEL Foreman Discovery
    MENU DEFAULT
    KERNEL boot/fdi-image-rhel_7-vmlinuz
    APPEND initrd=boot/fdi-image-rhel_7-img rootflags=loop root=live:/fdi.iso rootfstype=auto ro rd.live.image acpi=force rd.luks=0 rd.md=0 rd.dm=0 rd.lvm=0 rd.bootif=0 rd.neednet=0 nomodeset proxy.url=https://SATELLITE_CAPSULE_URL:9090 proxy.type=proxy
    IPAPPEND 2
  3. ONTIMEOUT 変数を変更して新規のメニューエントリーがデフォルトになるように設定します。
    ONTIMEOUT discovery
  4. プロビジョニングテンプレート ページの上部にある PXE デフォルトのビルド をクリックします。これにより、TFTP プロキシーに pxelinux.cfg/default ファイルを再作成するようとの指示が出されます。デフォルトテンプレートが変更されるたびにこの手順を繰り返されるため、変更が TFTP Satellite Capsule Server にデプロイされることを確認できます。
上記の手順の代わりに、proxy.url 変数を PXE 起動テンプレートから省略することもできます。この場合、Discovery イメージは DNS 設定ファイルで x-foreman.tcp という名前の SRV レコードを検索します。この場合、proxy.url 変数は proxy に設定する必要があります。また、DNS サーバーも適切に設定されている必要があります。たとえば、以下の設定ステートメントは Capsule Server が HTTPS で使用されるように指定します。
_x-foreman._tcp SRV 0 5 9090 capsule
ここで、 capsule は DNS 設定に含まれる Capsule Server の名前です。

注記

Satellite 6.2 は、ホストを検出できるすべてのサブネットに 1 つの Capsule Server URL のみを指定できます。テンプレートはサブネットごとに使用できないため、すべてのネットワークで DNS エイリアス名を使用します。または、代わりに SRV レコードを使用します。

重要

DHCP 設定からの DNS サーバーは、BOOTIF 変数で指定されるインターフェースの場合にのみ考慮に入れられます。BOOTIF は、PXE テンプレートの IPAPPEND 変数で自動的に設定されます。つまり、システムに複数の NIC が設定されている場合、DNS は起動元のインターフェースでのみ機能します。

11.1.3. グローバル Discovery 設定の確認

Satellite Web UI で Discovery プラグインに関連するグローバル設定を確認することができます。管理設定 に移動して、Discovered タブを開きます。以下の設定に留意してください。
discovery_organizationdiscovery_location
これらの変数は、検出されたホストを配置する場所を指定します。デフォルトでは、検出されたホストは最初に作成された組織とロケーションの下に自動的に配置されます。
discovery_fact
この変数は検出されたホストの MAC アドレスを判別するために使用される受信ファクトを指定します。デフォルトでは、PXELinux BOOTIF カーネルコマンドラインのオプションが使用されます。
discovery_auto
この変数は、指定されたルールに基づいて自動的なプロビジョニングを有効にします。デフォルトでは「false」に設定されます。Red Hat では、discovery_auto を有効にする前に設定を手動のプロビジョニングでテストすることを推奨しています。詳細は、「検出されたホストのプロビジョニング」 を参照してください。
discovery_fact_column
この変数により、検出されたホストの一覧の追加行に Facter がレポートするファクトを追加できます。