Red Hat Training

A Red Hat training course is available for Red Hat Satellite

第4章 ネットワークの設定

それぞれのプロビジョニングタイプにはネットワーク設定が必要です。本章を参照して、Satellite Server が統合された Capsule でネットワークサービスを設定します。

新規ホストが Capsule Server にアクセスできる必要があります。Capsule Server は、Satellite Server の統合 Capsule または外部 Capsule Server のいずれかになります。必要なホストが分離したネットワーク上にあり、Satellite Server に直接接続できない場合、またはコンテンツと Capsule Server とを同期している場合には、外部 Capsule Server からのホストのプロビジョニングを選択することができます。また、外部 Capsule Server を使用したプロビジョニングは、ネットワークの帯域幅を節約できます。

Capsule Server の設定には、基本的な要件が 2 つあります。

  1. ネットワークサービスの設定には、以下が含まれます。

    • コンテンツ配信サービス
    • ネットワークサービス (DHCP、DNS、および TFTP)
    • Puppet 設定
  2. Satellite Server でネットワークリソースデータを定義し、新規ホストでのネットワークインターフェースの設定をサポートします。

以下の説明は、特定のネットワークを管理するスタンドアロンの Capsule Server の設定にも同様に当てはまります。Satellite が外部の DHCP、DNS および TFTP サービスを使用するように設定する方法は、『接続ネットワークからの Satellite Server のインストール』「外部サービスの設定」を参照してください。

DHCP の範囲

Satellite Server では、Discovered システムおよびプロビジョニングシステムの両方に同じ DHCP 範囲を定義することはできますが、各サービスに同じサブネット内の別の範囲を使用することを推奨します。

4.1. イメージベースのプロビジョニングの要件

ブート後の設定方法

finish ブート後設定スクリプトを使用するイメージは、Satellite の 統合 Capsule または外部 Capsule など、管理された DHCP サーバーが必要です。ホストは DHCP Capsule と関連付けられたサブネットで作成する必要があり、ホストの IP アドレスは、DHCP 範囲の有効な IP アドレスでなければなりません。外部の DHCP サービスを使用することは可能ですが、IP アドレスは手動で入力する必要があります。イメージの設定に対応する SSH 認証情報は、ブート後の設定を実行できるように Satellite に設定しなければなりません。

外部の DHCP サービスを使用することは可能ですが、IP アドレスは手動で入力する必要があります。イメージの設定に対応する SSH 認証情報は、ブート後の設定を実行できるように Satellite に設定しなければなりません。

設定後スクリプトに依存するイメージからブートした仮想マシンをトラブルシューティングする場合には、以下の項目を確認する必要があります。

  • ホストには、Satellite Server に割り当てられたサブネットがあること。
  • サブネットには、Satellite Server に割り当てられた DHCP Capsule があること。
  • ホストには、Satellite Server に割り当てられた有効な IP アドレスがあること。
  • DHCP を使用した仮想マシンが取得した IP アドレスは、Satellite Server に設定されたアドレスと一致すること。
  • イメージから作成された仮想マシンは、SSH リクエストに応答すること。
  • イメージから作成された仮想マシンは、SSH を介して、デプロイされたイメージと関連付けられている、ユーザーとパスワードを承認すること。

ブート前の初期化の設定方法

cloud-init スクリプトを使用するイメージは通常、イメージに IP アドレスを含むことを回避するため、DHCP サーバーを必要とします。管理された DHCP Capsule が推奨されます。イメージは、システムがブートされた時に開始し、設定完了時に使用するスクリプトまたは設定データを取得するための cloud-init サービスを設定する必要があります。

イメージに含まれる初期スクリプトに依存するイメージからブートした仮想マシンをトラブルシューティングする場合には、以下の項目を確認する必要があります。

  • サブネット上に DHCP サーバーがあること。
  • 仮想マシンには cloud-init サービスがインストールされ、有効化されていること。

仮想マシンイメージの finish および finish スクリプトに対する異なるレベルのサポートに関する詳細は、Red Hat カスタマーポータルの Red Hat ナレッジベースソリューション What are the supported compute resources for the finish and cloud-init scripts を参照してください。

4.2. ネットワークサービスの設定

一部のプロビジョニング方法では Capsule Server サービスを使用します。たとえば、ネットワークで Capsule Server を DHCP サーバーとして機能させる必要がある場合があります。また、ネットワークで PXE ブートサービスを使用して、新規ホストにオペレーティングシステムをインストールすることも可能です。この場合には、主な PXE ブートサービスである DHCP、DNS および TFTP を使用できるように Capsule Server を設定する必要があります。

上記のオプションを指定して satellite-installer スクリプトを実行し、Satellite Server でこれらのサービスを設定します。

外部の Capsule Server にこれらのサービスを設定するには、satellite-installer --scenario capsule を実行します。

Satellite Server は、Red Hat の CDN への接続など、外部との通信に eth0 を使用します。

手順

Satellite の統合 Capsule でネットワークサービスを設定するには、以下の手順を行います。

  1. satellite-installer コマンドを入力し、必要なネットワークサービスを設定します。

    # satellite-installer --foreman-proxy-dhcp true \
    --foreman-proxy-dhcp-managed true \
    --foreman-proxy-dhcp-gateway "192.168.140.1" \
    --foreman-proxy-dhcp-interface "eth1" \
    --foreman-proxy-dhcp-nameservers "192.168.140.2" \
    --foreman-proxy-dhcp-range "192.168.140.10 192.168.140.110" \
    --foreman-proxy-dhcp-server "192.168.140.2" \
    --foreman-proxy-dns true \
    --foreman-proxy-dns-managed true \
    --foreman-proxy-dns-forwarders "8.8.8.8; 4.4.4.4" \
    --foreman-proxy-dns-interface "eth1" \
    --foreman-proxy-dns-reverse "140.168.192.in-addr.arpa" \
    --foreman-proxy-dns-server "192.168.140.2" \
    --foreman-proxy-dns-zone "example.com" \
    --foreman-proxy-tftp true \
    --foreman-proxy-tftp-managed true
  2. 設定する Capsule Server を検索します。

    # hammer proxy list
  3. Capsule Server の機能をリフレッシュして変更を表示します。

    # hammer proxy refresh-features --name "satellite.example.com"
  4. Capsule Server に設定されたサービスを確認します。

    # hammer proxy info --name "satellite.example.com"

4.3. ネットワーク設定の DHCP、DNS および TFTP オプション

DHCP オプション

--foreman-proxy-dhcp
DHCP サービスを有効にします。このオプションは、true または false に設定します。
--foreman-proxy-dhcp-managed
DHCP サービスを管理するため Foreman を有効にします。このオプションを true または false に設定します。
--foreman-proxy-dhcp-gateway
DHCP プールのゲートウェイ。これは、プライベートネットワークにあるホスト用の外部ゲートウェイのアドレスに指定します。
--foreman-proxy-dhcp-interface
要求をリッスンするために DHCP サービスのインターフェースを設定します。これは、eth1 に設定します。
--foreman-proxy-dhcp-nameservers
DHCP でクライアントに提供されたネームサーバーのアドレスを設定します。これは、eth1 の Satellite Server のアドレスに設定します。
--foreman-proxy-dhcp-range
Discovered および Unmanaged サービスのスペース区切りの DHCP プール範囲
--foreman-proxy-dhcp-server
管理する DHCP サーバーのアドレスを設定します。

DNS オプション

--foreman-proxy-dns
DNS サービスを有効にします。このオプションは、true または false に設定します。
--foreman-proxy-dns-managed
DNS サービスを管理するため Foreman を有効にします。このオプションを true または false に設定します。
--foreman-proxy-dns-forwarders
DNS フォワーダーを設定します。これは、お使いの DNS サーバーに設定します。
--foreman-proxy-dns-interface
DNS 要求をリッスンするためのインターフェースを設定します。これは、eth1 に設定します。
--foreman-proxy-dns-reverse
DNS 逆引きゾーン名です。
--foreman-proxy-dns-server
管理する DNS サーバーのアドレスを設定します。
--foreman-proxy-dns-zone
DNS ゾーン名に設定します。

TFTP オプション

--foreman-proxy-tftp
TFTP サービスを有効にします。このオプションは、true または false に設定します。
--foreman-proxy-tftp-managed
TFTP サービスを管理するため Foreman を有効にします。このオプションを true または false に設定します。

satellite-installer --scenario capsule --help を実行し、DHCP、DNS、TFTP およびその他の Satellite Capsule サービスに関するさらなるオプションを表示します。

4.4. Satellite Server へのドメインの追加

Satellite Server はネットワーク上の各ホストのドメイン名を定義します。Satellite Server には、ドメイン名を割り当てる Capsule Server とドメインに関する情報が必要です。

既存のドメインの確認

Satellite Server には、Satellite Server のインストールの一環として関連するドメインがすでに作成されている可能性があります。コンテキストを 任意の組織 および 任意のロケーション に切り替えてから、ドメインの一覧でこれが存在するかどうかを確認します。

手順

Satellite にドメインを追加するには、以下の手順を行います。

  1. Satellite Web UI で、インフラストラクチャー > ドメイン に移動して、ドメインの作成 をクリックします。
  2. DNS ドメイン フィールドに、完全な DNS ドメイン名を入力します。
  3. フルネーム フィールドで、プレーンテキストのドメイン名を入力します。
  4. パラメーター タブでは、任意のドメインレベルのパラメーターを設定し、このドメインに割り当てられたホストに適用します。たとえば、テンプレートで使用するユーザー定義ブール値またはストリングパラメーターなどです。
  5. パラメーターの追加 をクリックし、名前 および フィールドに入力します。
  6. ロケーション タブをクリックして、ドメインがある場所を追加します。
  7. 組織 タブをクリックして、ドメインが属する組織を追加します。
  8. 送信 をクリックして変更を保存します。

CLI を使用する場合

hammer domain create コマンドを使用して、ドメインを作成します。

# hammer domain create --name "domain_name.com" \
--description "My example domain" --dns-id 1 \
--locations "My_Location" --organizations "My_Organization"

この例では --dns-id オプションは 1 を使用しています。1 は、Satellite Server の 統合 Capsule ID です。

4.5. Satellite Server へのサブネットの追加

Satellite は、新規ホストのインターフェースを設定するので、サブネットごとの情報を Satellite Server に追加する必要があります。インターフェースを設定するには、Satellite Server には、これらのインターフェースを接続するネットワークに関する全情報を含める必要があります。

手順

Satellite Server にサブネットを追加するには、以下の手順を行います。

  1. Satellite Web UI で、インフラストラクチャー > サブネット に移動して、サブネットウィンドウで サブネットの作成 をクリックします。
  2. 名前 フィールドに、サブネットの名前を入力します。
  3. 説明 フィールドには、サブネットの説明を入力します。
  4. ネットワークアドレス フィールドには、サブネットのネットワークアドレスを入力します。
  5. ネットワークのプレフィックス フィールドには、サブネットのネットワークプレフィックスを入力します。
  6. ネットワークマスク フィールドには、サブネットのネットワークマスクを入力します。
  7. ゲートウェイアドレス フィールドには、サブネットの外部ゲートウェイを入力します。
  8. プライマリー DNS サーバー フィールドには、サブネットのプライマリー DNS を入力します。
  9. セカンダリー DNS サーバー には、、サブネットのセカンダリー DNS を入力します。
  10. IPAM には、IP アドレス管理 (IPAM) に使用するメソッドを選択します。

    • DHCP: サブネットには DHCP サーバーが含まれます。
    • 内部 DB: サブネットには DHCP サーバーは含まれませんが、Satellite では IP アドレスの割り当てを管理し、内部データベースに IP アドレスを記録できます。
    • なし: IP アドレス管理がありません。
  11. 選択した IPAM メソッドの情報を入力します。
  12. リモート実行 タブをクリックして、リモート実行を制御する Capsule を選択します。
  13. ドメイン タブをクリックして、このサブネットに適用するドメインを選択します。
  14. Capsule タブをクリックして、DHCP、TFTP、および逆引き DNS サービスなど、サブネットの各サービスに適用するカプセルを選択します。
  15. パラメーター タブをクリックして、任意のサブネットレベルのパラメーターを設定し、このサブネットに割り当てられたホストに適用します。たとえば、テンプレートで使用できるユーザー定義ブール値またはストリングパラメーターなどです。
  16. ロケーション タブをクリックして、この Capsule を使用するロケーションを選択します。
  17. 組織 タブをクリックして、この Capsule を使用する組織を選択します。
  18. 送信 をクリックしてサブネットの情報を保存します。

CLI を使用する場合

以下のコマンドでサブネットを作成します。

# hammer subnet create --name "My_Network" \
--description "your_description" \
--network "192.168.140.0" --mask "255.255.255.0" \
--gateway "192.168.140.1" --dns-primary "192.168.140.2" \
--dns-secondary "8.8.8.8" --ipam "DHCP" \
--from "192.168.140.111" --to "192.168.140.250" --boot-mode "DHCP" \
--domains "example.com" --dhcp-id 1 --dns-id 1 --tftp-id 1 \
--locations "My_Location" --organizations "My_Organization"
注記

この例では、--dhcp-id--dns-id、および --tftp-id オプションは 1 を使用します。1 は Satellite Server の統合 Capsule の ID です。

4.6. プロビジョニング時間を削減するための iPXE の設定

Red Hat Satellite 6.4 では、PXELinux を設定して iPXE をチェーンブートし、HTTP プロトコルを使用してブートすることができます。これは、高レイテンシーのネットワークにおいて TFTP よりも迅速で、信頼性も高まります。

Red Hat Satellite 6.4 で iPXE を使用する方法は 3 つあります。

  1. iPXE をプライマリーファームウェアとして使用するハイパーバイザーで仮想マシンをチェーンブートする方法
  2. TFTP を介して PXELinux を使用し、iPXE を直接ベアメタルホストにチェーンロードする方法
  3. UNDI を介して PXELinux を使用し、HTTP でカーネルとベアメタルホストの初期 RAM ディスクを移動する方法

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

  • 使用する Red Hat Satellite にホストが存在します。
  • プロビジョニングインターフェースの MAC アドレスが、ホスト設定と一致します。
  • ホストのプロビジョニングインターフェースには、有効な DHCP 予約があります。
  • NIC は、PXE ブートが可能です。詳細は http://ipxe.org/appnote/hardware_drivers を参照してください。
  • NIC は、iPXE と互換性があります。

4.6.1. 仮想マシンのチェーンブート

仮想化ハイパーバイザーの多くは、PXE ブートのプライマリーファームウェアとして iPXE を使用します。このため、TFTP および PXELinux なしでチェーンブートが可能です。

仮想マシンワークフローのチェーンブート

仮想化ハイパーバイザーを使用することで、 TFTP および PXELinux の必要性がなくなります。仮想化ハイパーバイザーのワークフローは、以下の通りです。

  1. 仮想マシンが起動します。
  2. iPXE が DHCP を使用してネットワークの認証情報を取得します。
  3. iPXE が DHCP を使用して HTTP アドレスを取得します。
  4. iPXE が テンプレート Capsule から iPXE テンプレートをチェーンロードします。
  5. iPXE が、インストーラーのカーネルおよび初期 RAM ディスクをロードします。

使用するハイパーバイザーが iPXE をサポートしていることを確認します。以下の仮想化ハイパーバイザーは、iPXE をサポートします。

  • libvirt
  • oVirt
  • RHEV

iPXE を使うための Red Hat Satellite Server の設定

デフォルトのテンプレートを使用して、ホストの iPXE ブーティングを設定できます。テンプレートのデフォルトの値を変更する場合は、テンプレートをクローンし、そのクローンを編集します。

手順

Satellite が iPXE を使用するように設定するには、以下の手順を行います。

  1. Satellite Web UI で、ホスト > プロビジョニングテンプレート に移動し、Kickstart default iPXE を入力後、検索 をクリックします。
  2. オプション: テンプレートを変更する場合は、クローン をクリックして独自の名前を入力し、送信 をクリックします。
  3. 使用するテンプレートの名前をクリックします。
  4. テンプレートをクローンした場合、変更が必要な時は テンプレート タブで実施できます。
  5. 関連付け タブをクリックし、ホストが使用するオペレーティングシステムを選択します。
  6. ロケーション タブをクリックして、ホストの所在を追加します。
  7. 組織 タブをクリックして、ホストが属する組織を追加します。
  8. 送信 をクリックして変更を保存します。
  9. ホスト > オペレーティングシステム に移動し、ホストのオペレーティングシステムを選択します。
  10. テンプレート タブをクリックします。
  11. iPXE テンプレート リストから、使用するテンプレートを選択します。
  12. 送信 をクリックして変更を保存します。
  13. ホスト > すべてのホスト に移動します。
  14. ホスト のページで、使用するホストを選択します。
  15. テンプレート タブを選択します。
  16. iPXE テンプレート リストから、レビュー を選択し、Kickstart default iPXE テンプレートが正しいテンプレートであることを確認します。
  17. iPXE ファームウェアのチェーンブートの無限ループを回避するには、/etc/dhcp/dhcpd.conf ファイルを編集し、以下の例に一致させます。分離したネットワークを使用する場合は、Satellite Server の URL ではなく、TCP port 8000 を伴う Capsule Server の URL を使用します。

    1. /etc/dhcp/dhcpd.conf ファイルの Bootfile Handoff セクションで、以下の行を見つけます。

      } else {
        filename "pxelinux.0";
      }
    2. else ステートメントの前に、以下に示す別の elsif ステートメントを追加します。

      elsif exists user-class and option user-class = "iPXE" {
        filename "http://satellite.example.com/unattended/iPXE";
      }
    3. if セクションが、以下の例と一致することを確認します。

      if option architecture = 00:06 {
        filename "grub2/shim.efi";
      } elsif option architecture = 00:07 {
        filename "grub2/shim.efi";
      } elsif option architecture = 00:09 {
        filename "grub2/shim.efi";
      } elsif exists user-class and option user-class = "iPXE" {
        filename "http://satellite.example.com/unattended/iPXE";
      } else {
        filename "pxelinux.0";
      }
      注記

      http://satellite.example.com/unattended/iPXE では、Red Hat Satellite Capsule http://capsule.example.com:8000/unattended/iPXE を使用することもできます。アップグレードごとに /etc/dhcp/dhcpd.conf ファイルを更新する必要があります。/etc/dhcp/dhcpd.conf ファイルのコンテンツは大文字と小文字を区別します。

4.6.2. iPXE ディレクトリーのチェーンブート

この手順を使用して、iPXE がネットワーク通信または UNDI インターフェースに内蔵のドライバーを使用するように設定します。Satellite Server と Capsule が iPXE を使用するように設定する方法は異なります。

この手順を使用できるのは、ベアメタルホストのみです。

直接または UNDI ワークフローと共に iPXE をチェーンブート

  1. ホストの電源をオンにします。
  2. PXE ドライバーは、DHCP を使用してネットワークの認証情報を取得します。
  3. PXE ドライバーは、TFTP を使用して PXELinux ファームウェア pxelinux.0 を取得します。
  4. PXELinux は、TFTP サーバーの設定ファイルを検索します。
  5. PXELinux は、iPXE ipxe.lkrn または undionly-ipxe.0 をチェーンロードします。
  6. iPXE は、再び DHCP を使用してネットワークの認証情報を取得します。
  7. iPXE は、DHCP を使用して HTTP アドレスを取得します。
  8. iPXE が テンプレート Capsule から iPXE テンプレートをチェーンロードします。
  9. iPXE が、インストーラーのカーネルおよび初期 RAM ディスクをロードします。

iPXE を使うための Red Hat Satellite Server の設定

デフォルトのテンプレートを使用して、ホストの iPXE ブーティングを設定できます。テンプレートのデフォルトの値を変更する場合は、テンプレートをクローンし、そのクローンを編集します。

手順

Satellite が UNDI ワークフローで iPXE を使用するように設定するには、以下の手順を行います。

  1. Satellite Web UI で、ホスト > プロビジョニングテンプレート に移動し、PXELinux chain iPXE または UNDI には PXELinux chain iPXE UNDI を入力し、検索 をクリックします。
  2. オプション: テンプレートを変更する場合は、クローン をクリックして独自の名前を入力し、送信 をクリックします。
  3. 使用するテンプレートの名前をクリックします。
  4. テンプレートをクローンした場合、変更が必要な時は テンプレート タブで実施できます。
  5. 関連付け タブをクリックし、ホストが使用するオペレーティングシステムを選択します。
  6. ロケーション タブをクリックして、ホストの所在を追加します。
  7. 組織 タブをクリックして、ホストが属する組織を追加します。
  8. 送信 をクリックして変更を保存します。
  9. プロビジョニングテンプレート ページの検索フィールドに Kickstart default iPXE を入力し、検索 をクリックします。
  10. オプション: テンプレートを変更する場合は、クローン をクリックして独自の名前を入力し、送信 をクリックします。
  11. 使用するテンプレートの名前をクリックします。
  12. テンプレートをクローンした場合、変更が必要な時は テンプレート タブで実施できます。
  13. 関連付け タブをクリックし、テンプレートをホストが使用するオペレーティングシステムに関連付けします。
  14. ロケーション タブをクリックして、ホストの所在を追加します。
  15. 組織 タブをクリックして、ホストが属する組織を追加します。
  16. 送信 をクリックして変更を保存します。
  17. ホスト > オペレーティングシステム に移動し、ホストのオペレーティングシステムを選択します。
  18. テンプレート タブをクリックします。
  19. PXELinux テンプレート リストから、使用するテンプレートを選択します。
  20. iPXE テンプレート リストから、使用するテンプレートを選択します。
  21. 送信 をクリックして変更を保存します。
  22. ホスト > すべてのホスト に移動し、使用するホストを選択します。
  23. テンプレート タブを選択し、PXELinux テンプレート リストから レビュー を選択して、そのテンプレートが正しいテンプレートであることを確認します。
  24. iPXE テンプレート リストから レビュー を選択して、テンプレートが正しいことを確認します。PXELinux のエントリーがない場合、または新しいテンプレートが見つからない場合は、ホスト > すべてのホスト に移動し、ホスト上で 編集 をクリックします。オペレーティングシステム タブをクリックし、続いてプロビジョニングテンプレート 解決 ボタンをクリックして、テンプレートのリストをリフレッシュします。
  25. iPXE ファームウェアのチェーンブートの無限ループを回避するには、/etc/dhcp/dhcpd.conf ファイルを編集し、以下の例に一致させます。分離したネットワークを使用する場合は、Satellite Server の URL ではなく、TCP port 8000 を伴う Capsule Server の URL を使用します。

    1. /etc/dhcp/dhcpd.conf ファイルの Bootfile Handoff セクションで、以下の行を見つけます。

      } else {
        filename "pxelinux.0";
      }
    2. else ステートメントの前に、以下に示す別の elsif ステートメントを追加します。

      elsif exists user-class and option user-class = "iPXE" {
        filename "http://satellite.example.com/unattended/iPXE";
      }
    3. if セクションが、以下の例と一致することを確認します。

      if option architecture = 00:06 {
        filename "grub2/shim.efi";
      } elsif option architecture = 00:07 {
        filename "grub2/shim.efi";
      } elsif option architecture = 00:09 {
        filename "grub2/shim.efi";
      } elsif exists user-class and option user-class = "iPXE" {
        filename "http://satellite.example.com/unattended/iPXE";
      } else {
        filename "pxelinux.0";
      }
      注記

      http://satellite.example.com/unattended/iPXE では、Red Hat Satellite Capsule http://capsule.example.comf:8000/unattended/iPXE も使用できます。アップグレードごとに /etc/dhcp/dhcpd.conf ファイルを更新する必要があります。/etc/dhcp/dhcpd.conf ファイルのコンテンツは大文字と小文字を区別します。

iPXE を使用するための Red Hat Satellite Capsule の設定

この手順を使用して、iPXE を使用するために Capsule を設定することができます。

この手順は、すべての Capsule で実行する必要があります。

手順

Capsule が iPXE をチェーンブートするように設定するには、以下の手順を行います。

  1. ipxe-bootimgs RPM パッケージをインストールします。

    # yum install ipxe-bootimgs
  2. iPXE ファームウェアを TFTP サーバーの root ディレクトリーにコピーします。TFTP は chroot 環境で実行するので、シンボリックリンクは使用しません。

    • 直接チェーンブートするには、以下のコマンドを入力します。

      # cp /usr/share/ipxe/ipxe.lkrn /var/lib/tftpboot/
    • UNDI の場合は、以下のコマンドを入力します。

      # cp /usr/share/ipxe/undionly.kpxe /var/lib/tftpboot/undionly-ipxe.0
  3. ファイルのコンテンツを修正します。

    # restorecon -RvF /var/lib/tftpboot/