22. Juli 2023von mb-press

iVentoy ist ein neues geniales Projekt von dem Ventoy Entwickler. Ein einfacher (i)PXE Server ohne umständliche Konfiguration.
Installieren, ISO Dateien ablegen und den Client per PXE-Boot starten.
Installation
Aktuelle iVentoy Version herunterladen und nach /opt entpacken.
wget https://github.com/ventoy/PXE/releases/download/v1.0.21/iventoy-1.0.21-linux-free.tar.gz
tar xvfz iventoy-1.0.21-linux-free.tar.gz -C /opt
ln -s /opt/iventoy-1.0.21 /opt/iventoy
Ordnerstruktur:
/opt/iventoy/
data # license file, config files
doc # documents
iso # ISO files
lib # library files that needed by iVentoy, don’t put other files here
log # log files
user # user files, third-part software, auto install scritps, etc.
iVentoy starten
root@pxe:~# cd /opt/iventoy
root@pxe:/opt/iventoy# ./iventoy.sh start
iventoy start SUCCESS PID=325
Please open your browser and visit http://127.0.0.1:26000 or http://x.x.x.x:26000 (x.x.x.x is any valid IP address)
# iVentoy Status
root@pxe:/opt/iventoy# ./iventoy.sh status
iventoy is running, PID=325
# iVentoy Webserver Port
root@pxe:/opt/iventoy# lsof -i :26000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
iventoy 325 root 16u IPv4 164942036 0t0 TCP *:26000 (LISTEN)
Im Browser http://iventoy-server-ip:26000 aufrufen und den PXE Service starten.

PXE Client
Client per PXE booten.

iVentoy mit externem DHCP Server
Nutzt man einen externen DHCP Server im LAN, DHCP Server Mode auf external stellen. (third-part dhcp server)

Am externen DHCP Server die Optionen next server und bootfile setzen. (next server = iVentoy ipadresse, bootfile = iventoy_loader_16000)

iVentoy update
Nicht einfach über die alte Version entpacken! (siehe Version update)
# iVentoy stoppen
cd /opt/iventoy
./iventoy.sh stop
# neue Version herunterladen und entpacken
wget https://github.com/ventoy/PXE/releases/download/v1.0.17/iventoy-1.0.17-linux-free.tar.gz
tar xvfz iventoy-1.0.17-linux-free.tar.gz -C /opt/
# config kopieren und ISOs verschieben
cp -v /opt/iventoy/data/config.dat /opt/iventoy-1.0.17/data/
mv -v /opt/iventoy/iso/* /opt/iventoy-1.0.17/iso/
# iVentoy symlink anpassen
rm /opt/iventoy
ln -s /opt/iventoy-1.0.17 /opt/iventoy
# iVentoy starten
cd /opt/iventoy
./iventoy.sh -R start
iVentoy autostart
Nach einem reboot soll der iVentoy Webserver und PXE Service automatisch gestartet werden. Das wird mit dem Paramenter -R erreicht.
iVentoy starten, über das WebUI konfigurieren und mit dem grünen Button den PXE Service starten. Die Konfiguration wird jetzt automatisch gespeichert.
Mit der -R Option startet iVentoy automatisch den PXE Service mit der zuletzt gespeicherten Konfiguration.
Die Datei /etc/systemd/system/iventoy.service mit folgendem Inhalt erstellen.
[Unit]
Description=iVentoy – a new netboot solution
After=network.target
[Service]
Type=simple
Restart=always
WorkingDirectory=/opt/iventoy
ExecStart=/usr/bin/bash /opt/iventoy/iventoy.sh -R start
ExecStop=/usr/bin/bash /opt/iventoy/iventoy.sh stop
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Service neu laden, aktivieren und starten.
systemctl daemon-reload
systemctl enable iventoy.service
systemctl start iventoy.service
Service Status.
systemctl status iventoy.service
● iventoy.service – iVentoy – a new netboot solution
Loaded: loaded (/etc/systemd/system/iventoy.service; enabled; preset: enabled)
Active: active (exited) since Wed 2023-07-19 12:52:26 CEST; 2s ago
Process: 737 ExecStart=/usr/bin/bash /opt/iventoy/iventoy.sh -R start (code=exited, status=0/SUCCESS)
Main PID: 737 (code=exited, status=0/SUCCESS)
Tasks: 13 (limit: 2307)
Memory: 27.7M
CPU: 611ms
CGroup: /system.slice/iventoy.service
└─750 /opt/iventoy/lib/iventoy
Jul 19 12:52:26 deb12 systemd[1]: Started iventoy.service – iVentoy – a new netboot solution.
Jul 19 12:52:26 deb12 bash[737]: iventoy start SUCCESS PID=750
Jul 19 12:52:26 deb12 bash[737]: Please open your browser and visit http://127.0.0.1:26000 or http://x.x.x.x:26000 (x.x.x.x is any valid IP address)
# iVentoy Webserver Port
lsof -i :26000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
iventoy 179 root 33u IPv4 6254229 0t0 TCP *:26000 (LISTEN)
# iVentoy PXE Service Port
lsof -i :69
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
iventoy 179 root 47u IPv4 6254274 0t0 UDP 192.168.50.162:tftp
iVentoy API
Über API Requests können Werte abgefragt und Befehle ausgeführt werden. (siehe Forum)
sysinfo, get_config_all, get_img_tree, get_dhcp_mode, get_mac_filter, get_mac_deny_list, sys_ip_list, start_server, stop_server
API Request sysinfo
curl -s ‘http://192.168.50.162:26000/iventoy/json’ –data-raw ‘{“method”:”sysinfo”}’
{“version”: “1.0.17 Linux 64-bit”,”curdir”: “/opt/iventoy”,”language”: “en”,”uuid”: “8842ccd3-9289-441e-b0c4-a0ec80de5602″,”edition”: 0,”status”: “running”,”os”: “linux”}
# jq installieren
apt install -y jq
curl -s ‘http://192.168.50.162:26000/iventoy/json’ –data-raw ‘{“method”:”sysinfo”}’ | jq
{
“version”: “1.0.17 Linux 64-bit”,
“curdir”: “/opt/iventoy”,
“language”: “en”,
“uuid”: “8842ccd3-9289-441e-b0c4-a0ec80de5602”,
“edition”: 0,
“status”: “running”,
“os”: “linux”
}
Ohne und mit jq.

iVentoy im LXC Container unter Proxmox
Läuft, wenn der Container mit diesen Optionen erstellt/konfiguriert wurde.
- unprivileged container no
- nesting 1
- cores 2
iVentoy sonstiges
Drückt man im Bootmenü die F5 Taste, kommt man auf die iPXE Konsole.

