Ebben a cikkben lépésről lépésre bemutatom, hogyan lehet egy Foreman szervert TFTP/PXE alapú Ubuntu 24.04 LTS telepítésre előkészíteni. A leírás általános érvényű, bármilyen környezetben alkalmazható.
1. Előfeltételek
A Foreman telepítéshez szükséges komponensek:
- Foreman szerver (ez az útmutató 3.9+ verzióra vonatkozik)
- Smart Proxy szerver TFTP és PXE támogatással
- DHCP szerver (vagy integrált a Smart Proxy-ban)
- Ubuntu 24.04 LTS ISO fájl
- Megfelelő alhálózat és VM hoszt
2. Infrastruktúra beállítása
2.1 Smart Proxy ellenőrzése
Foreman → Infrastructure → Smart Proxies menüpontban nézzük meg, hogy a TFTP és DHCP proxyink elérhetőek-e:
| Proxy szerver | Features |
| pxe-proxy.example.com | TFTP, DHCP, Foreman, Puppet |
2.2 Domain-ek
Foreman → Infrastructure → Domains menüpontban hozzuk létre a domain-eket:
| Domain név | DNS szerver |
| example.com | 10.10.10.1 |
2.3 Alhálózatok
Foreman → Infrastructure → Subnets menüpontban adjuk meg az alhálózatokat:
| Alhálózat | Kapuőr | DNS | DHCP proxy | TFTP proxy |
| 10.10.10.0/24 | 10.10.10.1 | 10.10.10.1 | pxe-proxy.example.com | pxe-proxy.example.com |

2.4 Telepítési médiák
Foreman → Content → Installation Media menüpontban adjunk hozzá egy új Installation Medium-ot:
| Név | Path | OS család |
| Ubuntu 24.04 LTS | http://pxe-proxy.example.com/pub/installation_media/ubuntu/24.04-x86_64/ | Debian |
Megjegyzés: Az ISO-t egy alkalmas helyre kell helyezni. Egy tanár kiszerzett módszer az ISO 7z-vel vagy xorriso-val történő kicsomagolása, majd a tartalom a /var/lib/foreman/public/pub/installation_media/ubuntu/24.04-x86_64/ könyvtárba másolása. Az Apache konfigurációban a ProxyPass /pub ! direktívával biztosítjuk, hogy a /pub alatt lévő fájlokat az Apache közvetlenül szolgálja ki, nem a Foreman proxy.

3. Operációs rendszer definiálása
3.1 Operációs rendszer hozzáadása
Foreman → Administer → Operating Systems menüpontban adjunk hozzá egy új operációs rendszert:
| Paraméter | Érték |
| Név | Ubuntu 24.04.1 LTS |
| Release name | noble |
| Family | Debian |
| Root Password Hash | SHA256 vagy PBKDF2 hasítás |
| Errata URL | üresen hagyható |
3.2 Alapértelmezett sablonok beállítása
Az OS hozzáadása után a Templates fülön állítsuk be az alapértelmezett sablonokat. A Debian/Ubuntu családnál jellemzően a Preseed-et használjuk.
| Sablon típusa | Telepítési módszer | Preseed |
| Provision | PXE | Preseed default autoinstall |
| PXELinux | Legacy BIOS | Preseed default PXELinux Autoinstall |
| PXEGrub2 | UEFI | Preseed default PXEGrub2 Autoinstall |
| Finish | – | Preseed default finish |
| user_data | Cloud-init | Preseed Autoinstall cloud-init user data |

3.3 Partíciós táblák
Foreman → Administer → Partition tables menüpontban válasszunk ki és jelöljünk be egy alkalmas partíciós táblát (pl. „Preseed default autoinstall”), amelyet az OS-hez társítunk.
| Partíciós tábla | OS család |
| Preseed default autoinstall | Debian |
4. Egyedi sablonok létrehozása
Az Ubuntu 24.04 LTS Preseed telepítéséhez néhány testreszabás szükséges. Az alábbiakban bemutatom az XORP infrastruktúrában használt egyedi sablonokat és azok módosításait:
4.1 user_data sablon testreszabása
Az Ubuntu 24.04 cloud-init telepítéshez szükséges egy preseed/late_command parancs, amely az /etc/cloud/cloud.cfg.d/-ben elhelyezi a cloud-init konfigurációt. Az alábbi módosítások szükségesek:
#cloud-config
apt:
sources:
ubuntu-repo:
source: "deb http://hu.archive.ubuntu.com/ubuntu noble main universe multiverse"
keyboard:
# Megjegyzés: Subiquity bug (LP#1621378) - a "keyboard: null" nem működik
# Megoldás: Localectl parancs a late-command-ban
late-commands:
- "{{ installer_assumes_loopback }} /target/usr/bin/localectl set-keymap hu"
identity:
hostname: "{{ host.name }}"
username: ubuntu
password: "$6$..." # SHA512 hash

4.2 Finish sablon testreszabása
A finish sablon (Preseed default finish) az installation után lefutó parancsokat tartalmazza. Az XORP egyedi sablonban a snapd csomagot távolítjuk el:
#!/bin/sh # Preseed default finish XORP apt-get purge snapd -y # Additional cleanup if needed

4.3 Partíciós tábla testreszabása
Az „Preseed default autoinstall XORP” partíciós tábla az alábbiakkal módosul:
...
- size: largest
filesystem: ext4
type: partition
mount: /

Összehasonlítás az alapértelmezettsel:

4.4 PXEGrub2 sablon
A PXEGrub2 sablon (UEFI boot) az XORP-ban az alapértelmezettnek megfelelően van klónozva és egyedi névvel ellátva. Lényeges módosítást nem igényel, csupán az UUID-t kell biztosítani a PXE boot inicializálásához.

5. Hosztcsoportok és egyéb beállítások
5.1 Hosztcsoport létrehozása
Foreman → Configure → Host Groups menüpontban hozzuk létre az új hosztcsoportot:
| Hosztcsoport | OS | Smart Proxy | Puppet Master |
| Main | Ubuntu 24.04.1 LTS | pxe-proxy.example.com | puppet.example.com |

6. Host létrehozása és telepítése
6.1 Új host hozzáadása
Foreman → Hosts → All Hosts → Create Host menüpontban adjunk hozzá egy új host-ot:
| Mező | Érték |
| Host name | testvm |
| Domain | example.com |
| Host Group | Main |
| Environment | production |
| Subnet | 10.10.10.0/24 |
| IP address | 10.10.10.100 |
| MAC address | 02:aa:d4:a1:a3:43 |
| Build | ✓ (bejelölni) |
6.2 Host mentése és telepítés indítása
Miután mentettük a host-ot, a „Reboot” vagy „Power On” opcióval elindítható a telepítés. A Foreman a PXE boot-ot meghagyta, és az alhálózat DHCP proxy-jában a szükséges konfigurációt létrehozta.

7. Valós infrastruktúra példa: XORP
Az XORP infrastruktúrában az alábbi értékek vannak használatban:
| Paraméter | Érték |
| Foreman szerver | xorp-foreman.xorp.hu |
| Smart Proxy (PXE/TFTP) | xorp-foreman.xorp.hu |
| DHCP proxy | xorp-foreman.xorp.hu |
| Domain | xorp.hu |
| Alhálózat | 10.0.7.0/24 (DC -Test VM) |
| Telepítési média | http://xorp-foreman.xorp.hu/pub/installation_media/ubuntu/24.04-x86_64/ |
| OS | Ubuntu 24.04.1 LTS |
| Hosztcsoport | Xorp-Main |
| Sablon csomag | XORP-os módosítások |
| Teszt host | testvm.xorp.hu (10.0.7.192, MAC: 02:aa:d4:a1:a3:43) |
testvm host adatai:
- Hostname: testvm.xorp.hu
- IP cím: 10.0.7.192
- MAC cím: 02:aa:d4:a1:a3:43
- Hosztcsoport: Xorp-Main
- OS: Ubuntu 24.04.1 LTS
- Boot módszer: PXE Grub2 (UEFI)
- Preseed sablon: Preseed default autoinstall XORP
8. Hibaelhárítás
8.1 PXE boot nem indul
- Ellenőrzend a DHCP proxy beállítása az alhálózatban
- Nézze meg a Smart Proxy TFTP logját: /var/log/foreman-proxy/tftp.log
- Ellenőrizze az alhálózat DHCP beállítása
8.2 Subiquity keyboard bug (LP#1621378)
Ha a telepítés „toggle: null” hibával leáll, az a Subiquity keyboard konfigurációs probléma. A megoldás: a user_data sablon cloud-init konfigurációjában távolítsuk el a „keyboard:” sort, és helyette a late-command-ban futtatjuk a localectl parancsot.
8.3 ISO extrakció
Az ISO fájlt az alábbiak szerint lehet kicsomagolni (NEM mount, hanem kicsomagolás):
7z x ubuntu-24.04.1-live-server-amd64.iso -o/var/lib/foreman/public/pub/installation_media/ubuntu/24.04-x86_64/ # vagy xorriso -osirrox on -indev ubuntu-24.04.1-live-server-amd64.iso -extract / /var/lib/foreman/public/pub/installation_media/ubuntu/24.04-x86_64/
9. Zárszó
A Foreman TFTP/PXE alapú Ubuntu 24.04 LTS telepítésének beüzemelése egy jól strukturált folyamat, amely megkönnyíti a nagyobb infrastruktúrák automatizált szervezetbe helyezését. Az XORP-ban használt egyedi sablonok és beállítások jó kezdőpont lehet saját infrastruktúra beállításához.
