1 of 10

Proxmox VE 8.2の自動インストールをネットワーク経由でやってみた

makihiro

2024-05-11(Sat)

ITインフラ集会

2 of 10

Who am I?

まきひろと名乗っています。

VRChat account: makihiro

X(Twitter) account: makihiro_vr or m_akihiro

Web: https://www.makihiro.info

ITインフラの企業でソフトウェア開発してます

3 of 10

Proxmox VEの紹介

Proxmox Virtual EnvrionmentはドイツのProxmox Server Solutions GmbHが開発している仮想化基盤です。LXCを用いたシステムコンテナとQEMU/KVMを用いた仮想マシンの仮想化を提供しています。

2024年4月にリリースされたProxmox VE 8.2にて自動インストール機能がインストーラーに実装されました。

4 of 10

Proxmox VEの自動インストールについて

公式ドキュメントによると以下のようになっている。

  • proxmox-auto-install-assistantを用いてisoを加工する必要がある
  • 構成ファイル(answer.toml)は3通り方法でインストーラーが受け取る
    • ISOに埋め込む
    • 所定の仕様に従いUSBメモリなどのローカルメディアに配置する
    • 以下の方法で取得したHTTP URLから取得する
      • ISOにURLを埋め込む
      • DHCPオプション250で受け渡す
      • DNSのproxmox-auto-installer.{search domain} TXTレコードを解決する

Automated Installation - Proxmox VE�https://pve.proxmox.com/wiki/Automated_Installation

5 of 10

Proxmox VEのインストーラーについて調査する

  1. isoのブートメカニズムとしてgrubが起動する
  2. grub.cfgに基づきlinux kernelとinitramfsがコマンドライン引数付きで起動
    • 自動インストールのISO加工を検知する仕組みがあり、デフォルトで自動インストールする

6 of 10

Proxmox VE Installerのnetwork bootさせる方法

Proxmox VE Installerはnetwork bootについてはドキュメントがない

  • フォーラムにnetwork bootさせる方法が書いてある
  • Proxmox VE Installerのintramfsもnetwork bootのための仕組みがある
  • intramfsの/initから以下を抜粋、isoをinitramfsにまるごと埋め込めば良い

Proxmox installation via PXE: solution | Proxmox Support Forum�https://forum.proxmox.com/threads/proxmox-installation-via-pxe-solution.8484/

7 of 10

installerの準備:ISOに取得先URLを埋め込む

proxmox.iso

/boot/linux26

/boot/initrd.img

pve-installer/proxmox-auto-install-assistant/src/main.rs at master · proxmox/pve-installer (github.com)�https://github.com/proxmox/pve-installer/blob/master/proxmox-auto-install-assistant/src/main.rs#L380-L401

proxmox-mod.iso: 指定のツールかxorrisoを用いてファイルを埋め込む

/boot/linux26

/boot/initrd.img

/auto-installer-mode.toml

8 of 10

installerの準備:initramfsにISOを埋め込む

proxmox-mod.iso 1.4GB

/boot/linux26

14MB

/boot/initrd.img

44MB

/auto-installer-mode.toml

<1KB

/boot/linux26

14MB

/boot/linux26

/boot/initrd.img

/auto-installer-mode.toml

initrd.img 1.4GB

/proxmox.iso

9 of 10

Proxmox VEのインストーラをNetwork Bootさせる

iPXEを用いてネットワークブートさせる

10 of 10

構成ファイル(answer.toml)で出来ること

Proxmox VE InstallerのGUI/TUIで出来る事以上でも以下でもない

  • anacondaやsubiquityと比べると貧弱
  • インストール後にansibleを使った
  • netやdiskのデバイス指定に癖がある�proxmox-auto-install-assistance�を使う必要がある

CGIでも何でも使ってだし分けるのが良い