カスタムiPXE
Equinix Metal™は、プロビジョニング中にカスタムiPXEスクリプトを渡すことをサポートしており、カスタムオペレーティングシステムを手動でインストールすることができます。サーバーをプロビジョニングする際、Equinix MetalはまずカスタムiPXEビルドをロードし、指定したiPXEスクリプトURLをチェーンロードします。
カスタムiPXEによるプロビジョニング
- Console
- CLI
- API
Equinix Metalコンソールを使用してカスタムiPXEでオンデマンドサーバーをプロビジョニングするには、_オペレーティングシステムの選択_のオプションから_カスタムiPXE_を選択します。一般にアクセス可能なhttp(s)の場所にiPXEスクリプトをホストしている場合は、テキストフィールドにスクリプトのURLを入力します。
スイッチを切り替えると、iPXEからサーバーを持続的に起動するように設定できます。iPXEブート中にサーバーが失敗した場合は、iPXE URLを編集してサーバーを再起動して再試行できます。

Deploy Now をクリックしてサーバーをプロビジョニングすると、iPXE URL からプロビジョニングされます。
metal device create \
--hostname netboot-custom-ipxe \
--plan c3.small.x86 \
--metro sv \
--operating-system custom_ipxe \
--project-id "$METAL_PROJECT" \
--ipxe-script-url "https://boot.netboot.xyz/"
Equinix Metal APIを使用してサーバーをプロビジョニングする場合、リクエスト本文の"operating_system"フィールドに"custom_ipxe"を、"ipxe_script_url"フィールドにURLを渡すことで、Custom iPXEを使用できます。
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/projects/{id}/devices" \
-d '{
"metro": "<metro_code>",
"plan": "<server_type>",
"operating_system": "custom_ipxe",
"always_pxe": true,
"ipxe_script_url": "https://boot.netboot.xyz/"
}'
イニシャルブート
DHCP 経由で iPXE を提供した後、デバイスは API とポータルでアクティブとしてマークされます。サーバーはブートローダー上にあり、SSHアクセスはできないため、Equinix Metal Out-of-Band Console を使用してサーバーにアクセスしてください。
注意: OOBコンソールを使って手動インストールを行い、netboot.xyzを使っていない場合、x86サーバーではconsole=ttyS1,115200n8、aarch64サーバーではconsole=ttyAMA0,115200が必要です。
DHCPはCustom iPXEデバイスの全ライフサイクルにおいて利用可能であるため、DHCP経由でネットワーク構成を取得し、メタデータサービスからIPアドレス情報を検出することで、OSで静的にネットワークをセットアップできます。ホスト・サーバからcurl https://metadata.platformequinix.com/metadataを実行します。
何かが間違っていてサーバにアクセスできない場合は、サーバ_Overview_の_Edit Instance Details_を使用します。起動時のiPXEの動作を変更し、iPXEスクリプトを編集してから、新しい設定でサーバを再起動できます。
netboot.xyzの使用例
netboot.xyzを使用してオペレーティングシステムを手動でインストールする場合は、Equinix Metal Out-of-Band Connectに接続してOSオプションのメニューを表示します。
netboot.xyz
Default:
Boot from local hdd (283)
Distributions:
Linux Network Installs
Live CDs
BSD Installs
Unix Network Installs
Tools:
Architecture: x86_64 (64bit)
iPXE shell
Network card info
PCI Device List
About netboot.xyz
Signature Checks:
netboot.xyz [ enabled: true ]
netboot.xyzで利用可能なオペレーティングシステムに関する情報は[GitHub Readmeにあります。
リストにないオペレーティングシステムをインストールしたい場合、ISOと一緒に配布されている場合は、iPXE shellオプションを選択し、コマンドを入力することでインストールできます:
kernel https://boot.netboot.xyz/memdisk iso raw
initrd http://url/to/iso
boot
netboot.xyz ドキュメント には、インストールに失敗する可能性があると記載されていることに注意してください。initramfs CD デバイスをロードしようとして失敗した場合は、memdisk にインストールメディアを探すようにアップデートしてください。この問題についての詳細は [reversengineered.com の記事 を参照してください。
Netboot.xyzによるメタルCLI
metal device create \
--hostname netboot-custom-ipxe \
--plan c3.small.x86 \
--metro sv \
--operating-system custom_ipxe \
--project-id "$METAL_PROJECT" \
--userdata='#!ipxe
chain -ar https://boot.netboot.xyz'
PXE の永続化
カスタム iPXE のプロビジョニングがキックオフされると、次のブートオプションは PXE on first boot になります。デフォルトでは、この PXE プロセスは最初のブート時に 1 回のみ実行されます。デバイスを最初にiPXEで継続的に起動するように設定するには、_Custom iPXE Settings_の下、またはプロビジョニング時にトグルを使用するか、プロビジョニング後に_Server Actions_または_Edit Instance Details_からトグルを使用します。
Trueに設定すると、最初のプロビジョニング再起動後もPXEが最初のブートオプションとして使用されます。これはiPXEプロビジョニングスクリプトのテストに最適であり、将来エクイニクスで「常時PXEベースのOS」を使用するための基盤となります。