8.4. iPXE を使用したホストの起動
Assisted Installer は、インフラストラクチャー環境の検出イメージを起動するために必要なすべての成果物を含む iPXE スクリプトを提供します。現在の iPXE の HTTPS 実装には制限があるため、HTTP サーバーで必要なアーティファクトをダウンロードして公開することを推奨します。現在、iPXE が HTTPS プロトコルをサポートしていても、サポートされているアルゴリズムは古く、推奨されていません。
サポートされている暗号の完全なリストは https://ipxe.org/crypto にあります。
前提条件
- API を使用してインフラストラクチャー環境を作成したか、UI を使用してクラスターを作成しました。
-
インフラストラクチャー環境 ID がシェルに
$INFRA_ENV_IDとしてエクスポートされている。 -
API にアクセスするときに使用する認証情報があり、シェルで
$API_TOKENとしてトークンをエクスポートしました。 - イメージをホストする HTTP サーバーがあります。
UI で設定する場合、$INFRA_ENV_ID および $API_TOKEN 変数はすでに指定されています。
IBM Power は PXE のみをサポートします。また、IBM Power では、/var/lib/tftpboot に grub2 をインストール し、PXE 用の DHCP および TFTP をインストールする必要もあります。
手順
UI から直接 iPXE スクリプトをダウンロードするか、Assisted Installer から iPXE スクリプトを取得します。
curl \ --silent \ --header "Authorization: Bearer $API_TOKEN" \ https://api.openshift.com/api/assisted-install/v2/infra-envs/$INFRA_ENV_ID/downloads/files?file_name=ipxe-script > ipxe-script
$ curl \ --silent \ --header "Authorization: Bearer $API_TOKEN" \ https://api.openshift.com/api/assisted-install/v2/infra-envs/$INFRA_ENV_ID/downloads/files?file_name=ipxe-script > ipxe-scriptCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
#!ipxe initrd --name initrd http://api.openshift.com/api/assisted-images/images/<infra_env_id>/pxe-initrd?arch=x86_64&image_token=<token_string>&version=4.10 kernel http://api.openshift.com/api/assisted-images/boot-artifacts/kernel?arch=x86_64&version=4.10 initrd=initrd coreos.live.rootfs_url=http://api.openshift.com/api/assisted-images/boot-artifacts/rootfs?arch=x86_64&version=4.10 random.trust_cpu=on rd.luks.options=discard ignition.firstboot ignition.platform.id=metal console=tty1 console=ttyS1,115200n8 coreos.inst.persistent-kargs="console=tty1 console=ttyS1,115200n8" boot
#!ipxe initrd --name initrd http://api.openshift.com/api/assisted-images/images/<infra_env_id>/pxe-initrd?arch=x86_64&image_token=<token_string>&version=4.10 kernel http://api.openshift.com/api/assisted-images/boot-artifacts/kernel?arch=x86_64&version=4.10 initrd=initrd coreos.live.rootfs_url=http://api.openshift.com/api/assisted-images/boot-artifacts/rootfs?arch=x86_64&version=4.10 random.trust_cpu=on rd.luks.options=discard ignition.firstboot ignition.platform.id=metal console=tty1 console=ttyS1,115200n8 coreos.inst.persistent-kargs="console=tty1 console=ttyS1,115200n8" bootCopy to Clipboard Copied! Toggle word wrap Toggle overflow ipxe-scriptから URL を抽出して、必要なアーティファクトをダウンロードします。初期 RAM ディスクをダウンロードします。
awk '/^initrd /{print $NF}' ipxe-script | curl -o initrd.img$ awk '/^initrd /{print $NF}' ipxe-script | curl -o initrd.imgCopy to Clipboard Copied! Toggle word wrap Toggle overflow Linux カーネルをダウンロードします。
awk '/^kernel /{print $2}' ipxe-script | curl -o kernel$ awk '/^kernel /{print $2}' ipxe-script | curl -o kernelCopy to Clipboard Copied! Toggle word wrap Toggle overflow ルートファイルシステムをダウンロードします。
grep ^kernel ipxe-script | xargs -n1| grep ^coreos.live.rootfs_url | cut -d = -f 2- | curl -o rootfs.img
$ grep ^kernel ipxe-script | xargs -n1| grep ^coreos.live.rootfs_url | cut -d = -f 2- | curl -o rootfs.imgCopy to Clipboard Copied! Toggle word wrap Toggle overflow
URL を
ipxe-script`内のさまざまなアーティファクトに変更して、ローカル HTTP サーバーに一致させます。以下に例を示します。#!ipxe set webserver http://192.168.0.1 initrd --name initrd $webserver/initrd.img kernel $webserver/kernel initrd=initrd coreos.live.rootfs_url=$webserver/rootfs.img random.trust_cpu=on rd.luks.options=discard ignition.firstboot ignition.platform.id=metal console=tty1 console=ttyS1,115200n8 coreos.inst.persistent-kargs="console=tty1 console=ttyS1,115200n8" boot
#!ipxe set webserver http://192.168.0.1 initrd --name initrd $webserver/initrd.img kernel $webserver/kernel initrd=initrd coreos.live.rootfs_url=$webserver/rootfs.img random.trust_cpu=on rd.luks.options=discard ignition.firstboot ignition.platform.id=metal console=tty1 console=ttyS1,115200n8 coreos.inst.persistent-kargs="console=tty1 console=ttyS1,115200n8" bootCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: IBM zSystems に RHEL KVM を使用してインストールする場合は、追加のカーネル引数を指定してホストを起動する必要があります。
random.trust_cpu=on rd.luks.options=discard ignition.firstboot ignition.platform.id=metal console=tty1 console=ttyS1,115200n8 coreos.inst.persistent-kargs="console=tty1 console=ttyS1,115200n8
random.trust_cpu=on rd.luks.options=discard ignition.firstboot ignition.platform.id=metal console=tty1 console=ttyS1,115200n8 coreos.inst.persistent-kargs="console=tty1 console=ttyS1,115200n8Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記iPXE を使用して RHEL KVM にインストールする場合、VM ホスト上の VM が初回起動時に再起動されず、手動での起動が必要になることがあります。
オプション: IBM Power にインストールする場合は、次のように intramfs、カーネル、および root をダウンロードする必要があります。
- initrd.img と kernel.img を PXE ディレクトリー `/var/lib/tftpboot/rhcos` にコピーします。
- rootfs.img を HTTPD ディレクトリー `/var/www/html/install` にコピーします。
次のエントリーを `/var/lib/tftpboot/boot/grub2/grub.cfg` に追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow