8.4. iPXE を使用したホストの起動
Assisted Installer は、インフラストラクチャー環境の検出イメージを起動するために必要なすべての成果物を含む iPXE スクリプトを提供します。現在の iPXE の HTTPS 実装には制限があるため、HTTP サーバーで必要なアーティファクトをダウンロードして公開することを推奨します。現在、iPXE が HTTPS プロトコルをサポートしていても、サポートされているアルゴリズムは古く、推奨されていません。
サポートされている暗号の完全なリストは https://ipxe.org/crypto にあります。
前提条件
- API を使用してインフラストラクチャー環境が作成されている、または Web コンソールを使用してクラスターが作成されている。
-
インフラストラクチャー環境 ID がシェルに
$INFRA_ENV_IDとしてエクスポートされている。 -
API にアクセスするときに使用する認証情報があり、シェルで
$API_TOKENとしてトークンをエクスポートしました。
Web コンソールを使用して iPXE を設定する場合、$INFRA_ENV_ID および $API_TOKEN 変数は事前に設定されます。
- イメージをホストするための HTTP サーバーがある。
IBM Power® は PXE のみをサポートしています。PXE には次の要件があります。
-
GRUB2 が
/var/lib/tftpbootにインストールされている - PXE 用の DHCP と TFTP
手順
iPXE スクリプトを Web コンソールから直接ダウンロードするか、次のコマンドを実行して 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 \ | xargs curl -o initrd.img -L$ awk '/^initrd /{print $NF}' ipxe-script \ | xargs curl -o initrd.img -LCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して Linux カーネルをダウンロードします。
awk '/^kernel /{print $2}' ipxe-script | xargs curl -o kernel -L$ awk '/^kernel /{print $2}' ipxe-script | xargs curl -o kernel -LCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ルートファイルシステムをダウンロードします。
grep ^kernel ipxe_script | xargs -n1 | grep ^coreos.live.rootfs_url | cut -d = -f 2,3,4 | xargs curl -o rootfs.img -L
$ grep ^kernel ipxe_script | xargs -n1 | grep ^coreos.live.rootfs_url | cut -d = -f 2,3,4 | xargs curl -o rootfs.img -LCopy to Clipboard Copied! Toggle word wrap Toggle overflow
ローカル HTTP サーバーに一致するように、
ipxe スクリプト内のさまざまなアーティファクトへの URL を変更します。以下に例を示します。#!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 Z® に 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 注記RHEL KVM に iPXE を使用してインストールすると、仮想マシンホスト上の仮想マシンが最初の起動時に起動しない可能性があります。手動で起動する必要があります。
オプション: IBM Power® にインストールする場合は、次のように
initramfs、kernel、およびrootイメージをダウンロードする必要があります。-
initrd.imgおよびkernel.imgイメージを/var/lib/tftpboot/rhcosPXE ディレクトリーにコピーします。 -
rootfs.imgを/var/www/html/installHTTPD ディレクトリーにコピーします。 /var/lib/tftpboot/boot/grub2/grub.cfgディレクトリーに次のエントリーを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-