4
4

ProxmoxをiPXEでいれてみた

Posted at

概要

ProxmoxをiPXE経由で起動して自動セットアップをしてみる

流れ

  1. iPXEBoot可能なPCを起動する
  2. DHCPによりインストーラの場所を取得
  3. HTTPサーバーよりインストーラの取得
  4. 同じくHTTPサーバーより初期セットアップ用の回答ファイルの取得
  5. 自動起動!

環境

機器
NEC IX2215
動いてるPROXMOXサーバー 8.1.4

手順

iPXEBoot可能なPCを準備する

検証につき自前proxmoxサーバーにてVMを準備
マシン: i440fx
BIOS: SeaBIOS
OSタイプ: Linux 6.x
CPU: HOST
メモリ: 6,144

メモリが6GB以下だとインストールができないことがあった

一度起動し、BIOS設定にて起動順序をiPXE ipv4 のみにしておく

インストーラの準備

https://pve.proxmox.com/wiki/Automated_Installation
ここを参考に自動インストール用のisoを作成する

  1. toolのインストール
    apt install proxmox-auto-install-assistant

  2. インストール対象のProxmoxインストーラーをダウンロード
    wget https://enterprise.proxmox.com/iso/proxmox-ve_8.2-1.iso

  3. toolを使用して自動セットアップ設定が書き込まれたisoの作成
    proxmox-auto-install-assistant prepare-iso {ダウンロードしたiso} --fetch-from http --url "{WEBサーバーIP}/answer"

  4. 初期RAMディスクとカーネルの抜出
    https://github.com/morph027/pve-iso-2-pxe

bash pve-iso-2-pxe.sh {3で作成したiso}
直下にpxeboot/linux26 pxeboot/initrdができたことを確認
※後で使います

回答ファイルの準備

最低限の記述だけをしておく

answer.toml
[global]
keyboard = "en-us"
country = "jp" 
fqdn = "{サーバー名}.local" 
mailto = "pvexxx@no.invalid"
timezone = "Asia/Tokyo" 
root_password = "{rootパスワード}" 
[network] 
source = "from-dhcp" 
[disk-setup]
filesystem = "ext4"
lvm . swapsize = 0
lvm . maxvz = 0
disk_list = [ "sda" ]

fqdnがサーバー名になるので注意!!

複数ディスクがある場合は["sda","sdb","sdc"]のように記述

起動ファイルの作成

lpxelinux.0
#!ipxe
dhcp
set serverip http://{HTTPサーバーIP}
set opts "vga=791 video=vesafb:ywrap,mtrr ramdisk_size=16777216 rw quiet initrd=initrd"
kernel ${serverip}/linux26 ${opts} proxmox-start-auto-installer
initrd ${serverip}/initrd
boot

HTTPサーバーの準備

テスト用のサーバーを作ってあるので必要であれば↓
https://github.com/maimai-club/installmox
手順4で作成したファイルと起動用ファイルを広報する

  • http://{サーバーIP}/lpxelinux.0
  • http://{サーバーIP}/initrd
  • http://{サーバーIP}/linux26
  • http://{サーバーIP}/answer.toml

DHCPオプションの設定

DHCPオプション67に起動ファイルURLを設定
NEX IXルーターの場合:
Option 60 ascii PXEClient ※PXEの場合は指定しなくてもよかった
Option 67 ascii http://{サーバーIP}/lpxelinux.0

起動!

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4