ネットワークを通じてインストールする(PXEブート)

ネットワークブートによるインストール中に、次の処理が実行されます。

  1. クライアントがPXEモードでブートされます。

  2. DHCPサーバが、IPアドレスとマスク、インストールサーバのアドレス、サーバ上のブートローダファイルの名前をクライアントに提供します。

  3. クライアントは、インストールサーバからTFTPプロトコルを通じてブートローダファイルをダウンロードし、実行します。

  4. クライアントは、インストールに使用できるプロファイルをメニューから選択するか、いずれかのプロファイルで自動インストールを開始します。

  5. クライアントは、TFTPプロトコルを通じて、そのプロファイルと一致するディストリビューション用のカーネルと初期RAMディスクをダウンロードします。

  6. インストールカーネルは、インストールプログラム、KickstartまたはAutoYaSTを起動します。 それ以降、カーネルは、HTTPプロトコルを通じてサーバで提供されるリソースを使用します。

  7. ディストリビューションは、KickstartまたはAutoYaSTプロファイルに従って自動的にインストールされます。

  8. プロファイルは、従来のクライアントまたはSaltクライアントとしてクライアントをSUSE Managerサーバに登録するコードスニペットを呼び出します。

cobbler menu

インストールサーバは、SUSE Managerサーバまたはそのプロキシのいずれかにすることができです。 プロキシからインストールするには、事前にサーバとプロキシの間でTFTPツリーを同期させる必要があります。

DHCPサーバは、ホスト名、ルータのアドレス、ドメインネームサーバのアドレスなど、その他の構成情報をクライアントに提供することもあります。 この情報の一部は、インストールサーバをドメイン名で指定した場合など、自動インストールのために必要になることがあります。

[PXEブート]メニューで、最初の選択肢は[ローカルブート]です。 これを選択すると、ブートプロセスはローカルディスクドライブから続行されます。 特定の時間内にプロファイルが選択されなかった場合は、このオプションが自動的に選択されます。 これは、プロファイルを選択する人間のオペレータがいない場合に、自動インストールが開始されないようにするための安全対策です。

または、手動での操作なしで、いずれかのプロファイルからインストールを自動的に開始することもできます。 これは「無人プロビジョニング」と呼ばれます。

「ベアメタル」機能は、PXEブートに基づく無人プロビジョニングの一種です。 このシナリオでは、ブートローダファイルはSUSE Managerサーバでクライアントを登録するだけで、インストールは開始しません。 インプレースでの再インストールを後で実行することができます。

手順: PXEブートによるインストール
  1. DHCPサーバを準備します。DHCPサーバを準備するを参照してください。

  2. 自動インストールのディストリビューションを準備します。自動インストールのディストリビューションを参照してください。

  3. 自動インストールプロファイルを準備します。自動インストールプロファイルを参照してください。

  4. クライアントを再起動し、インストールするプロファイルを選択します。

その他の一部の手順はオプションです。プロキシをインストールサーバとして使用するには、プロキシを使用してTFTPツリーを同期するを参照してください。無人プロビジョニングについては、無人プロビジョニングを参照してください。

1. DHCPサーバを準備する

PXEブートプロセスは、DHCPを使用して、TFTPサーバを検索します。 SUSE Managerサーバまたはそのプロキシは、TFTPサーバとして機能させることができます。

このためには、ネットワークのDHCPサーバへの管理アクセス権が必要です。 TFTPブートサーバとしてインストールサーバをポイントするようにDHCP設定ファイルを編集します。

例: ISC DHCPサーバを設定する
  1. DHCPサーバでrootとして/etc/dhcpd.confファイルを開きます。

  2. クライアントに対する宣言を次のように変更します。

      host myclient { (...)
                      next-server 192.168.2.1;
                      filename "pxelinux.0"; }
  3. ファイルを保存し、dhcpdサービスを再起動します。

この例では、192.168.2.1でPXEクライアントmyclientをインストールサーバに指定し、pxelinux.0ブートローダファイルの取得を指示しています。

DHCPサーバがSUSE Managerに登録されている場合は、その代わりにDHCPd式を使用して設定することもできます。

例: DHCPd式を使用したISC DHCPサーバの設定
  1. システム  システム一覧に移動し、変更するクライアントを選択し、[]タブに移動してDHCPd式を有効にします。

  2. 式の[Dhcpd]タブに移動し、[次のサーバ]フィールドに、インストールサーバのホスト名またはIPアドレスを入力します。

  3. Filename EFI](ファイル名EFI)フィールドで、grub/grub.efiと入力し、EFI PXEのサポートを有効にします。

  4. ファイル名]フィールドで、pxelinux.0と入力し、従来のBIOSのサポートを有効にします。

  5. Save Formula(式の保存)をクリックして設定を保存します。

  6. highstateを適用します。

セキュアブートを使用する場合は、[Filename EFI](ファイル名EFI)フィールドにgrub/grub.efiではなくgrub/shim.efiと入力します。

これですべてのホストにグローバルPXEサーバが設定されますが、ホストごとに設定することもできます。 DHCPd式の詳細については、DHCPd式を参照してください。

2. プロキシを使用してTFTPツリーを同期する

SUSE Managerサーバ上のTFTPツリーはSUSE Managerプロキシと同期させることができます。 同期するには、HTTPSポート443を開く必要があります。

プロキシを追加するたびに、ツリーの同期に時間がかかるようになります。

手順: サーバとプロキシ間のTFTPの同期
  1. SUSE Managerサーバのコマンドプロンプトで、rootとしてsusemanager-tftpsyncパッケージをインストールします。

    zypper install susemanager-tftpsync
  2. SUSE Managerプロキシのコマンドプロンプトで、rootとしてsusemanager-tftpsync-recvパッケージをインストールします。

    zypper install susemanager-tftpsync-recv
  3. プロキシでrootとしてconfigure-tftpsync.shスクリプトを実行します。 スクリプトは、SUSE Managerサーバおよびプロキシのホスト名およびIPアドレス、プロキシのtftpbootディレクトリの場所の詳細についてインタラクティブに問い合わせます。詳細については、configure-tftpsync.sh --helpコマンドを使用してください。

  4. サーバでrootとしてconfigure-tftpsync.shスクリプトを実行します。

    configure-tftpsync.sh proxy1.example.com proxy2.example.com
  5. サーバでcobbler syncコマンドを実行して、プロキシにファイルをプッシュします。 プロキシが正しく設定されていないとこの操作は失敗します。

プロキシのリストを後で変更する場合、configure-tftpsync.shスクリプトを使用して編集できます。

設定済みのプロキシを再インストールしてすべてのファイルを再プッシュする場合、cobbler syncを呼び出す前に/var/lib/cobbler/pxe_cache.jsonでキャッシュファイルを削除する必要があります。