Diskless kliens létrehozása Ubuntu 20.04 környezeben
Összefoglalás
A leírás Ubuntu 20.04.1 Desktop x64 operációs rendszeren készült.
A parancsok root jogot feltételeznek. (állandó root jog: sudo -i)
A szükséges csomagokat az operációs rendszer tárolójából telepítjük.
A példában a kliens környezet VMware ESX 7.0 virtuális gép volt.
A Diskless Infrastruktúrát adottnak tekintjük. (Diskless Infrastruktúra todo)
Diskless kliens prototípus telepítése
Az operációs rendszert telepítsük a megszokott módon a tervezett Diskless kliens hardverre egy ideiglenes fizikai diszk behegyezésével. Ha a hardvert biztosan támogatja az operációs rendszer, és telepítéskor nem szükséges a hardverrel kapcsolatos konfiguráció, akkor telepíthetjük virtuális gépre is, mit a jelenlegi példában.
A tervezett felhasználókat, szoftvereket, beállításokat megtehetjük most, vagy a már a kész Diskless kliensen.
Ha a telepítés kész, indítsunk egy root jogú terminált, és kezdőzhet a Dikless kliens konfigurálása.
Diskless kliens konfigurálása
Előfeltételek
Telepítsük az nfs és tftp klienseket, majd csatoljuk fel ideiglenesen a Diskless kliens nfsroot könyvtárát.
apt -y install nfs-common tftp
mount <nfsserver>:/<nfsroot> /mnt
Az Initial ramdisk -et fel kell készíteni a hálózati boot-ra. Szerkesszük az /etc/initramfs-tools/initramfs.conf fájlt és helyezzük el / módosítsuk benne a következő beállításokat.(ha a telepített példányt használni szeretnénk tovább hagyományos kliensként, akkor a beállításokat a konfigurálás után állítsuk vissza)
BOOT=nfs
MODULES=netboot
Prototípus másolása az nfsroot -ra
A telepített példány teljes / könyvtárát másoljuk fel az nfsroot -ra.
cp -ax /. /mnt/.
cp -ax /dev/. /mnt/dev/.
Bootloader beállítása
A módosított initramfs beállításokkal készítsük el az image-t egy ideiglenes helyre, pl a /root könyvtárba.
mkinitramfs -o ~/initrd.img-`uname -r`
Másoljuk fel a TFTP szerverre az aktuális kernelt és az elkészített Initial ramdisk image-t. Ez esetben TFTP szervernek írhatónak kell lenni az aktuális IP címről. (Ha ez nem megoldható, akkor egyéb módon másoljuk át a fájlokat.)
tftp <TFTP szerver> <<< "put ~/initrd.img-`uname -r` initrd.img-`uname -r`"
tftp <TFTP szerver> <<< "put /boot/vmlinuz-`uname -r` vmlinuz-`uname -r`"
Ezután a bootloadert kell konfigurálni, hogy a megfelelő Diskless kliens(ek)nek a megfelelő Initial ramdisk-et és kernelt szolgáltassa, a kívánt nfsroot és egyéb paraméterekkel . Ez a bootloader típusától és a Diskless Infrastruktúra összetettségétől függ. Lsd.: todo
Diskless kliens módosítások
Hogy a Diskless kliens megfelelően működjön kell, illetve lehet pár módosítást végezni a felmásolt operációs rendszeren.
Fstab
Az /etc/fstab-ban a következő beállításokat cseréljük / hozzuk létre. A fizikai eszközökre vonatkozó beállítások csak akkor maradjanak, ha azok valóban léteznek a Diskless kliensben (pl. CD ROM). A swap beállításokat szüntessük meg.
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/nfs / nfs defaults 1 1
none /tmp tmpfs defaults 0 0
none /var/run tmpfs defaults 0 0
none /var/lock tmpfs defaults 0 0
none /var/tmp tmpfs defaults 0 0
Grub kiiktatása
Az Ubuntu repositoryban a grub függőségi viszonyban van a kernel-el, ezért egy egyszerű módszert választottunk a kiiktatására. Ha nem létezik a grub.cfg akkor a grub frissítés mechanizmusok nem működnek.
mv /mnt/boot/grub/grub.cfg /mnt/boot/grub/grub.cfg.bak
Mindez és a Diskless Infrastruktúra helyes beállítása után, a Diskless kliensek képesek hálózatról bootolni és működni. A prototípust megszüntethetjük vagy archiválhatjuk.
Az további beállítások már a Diskless kliensen értendőek.
Diskless kliensek egyediesítése
Annak ellenére, hogy a Diskless Infrastruktúra egyik előnye a központ operációs rendszer management és disztribúció, szükség lehet, hogy a kliensek bizonyos szempontból különbözőek legyenek.
Hostname
Az egyedi hostname konfigurálható kernel parancsori paraméterrel (todo) vagy DHCP konfigurációval. (todo) De előtte a "helyi" konfigurációt meg kell szüntetni.
mv /etc/hostname /etc/hostname.bak
Temp és swap
A fenti fstab konfigurációban az ideiglenes állományokat tartalmazó könyvtárak tmpfs-két vannak csatolva, így az állományok a memóriába kerülnek. Továbbá nem használunk swap-et. Egy Diskless infrastruktúra kialakításakor az egyik elsődleges szembont a költséghatékonyság, így általában a kliensek hardver erőforrásai szerények. Nagyobb temp méret vagy memória igényű alkalmazásoknál a tmpfs nem elég, illetve szükség lehet swap-re.
Ha az nfsroot megfelelő könyvtárait (/tmp, /tmp/var, /swapfile) használjuk, az Diskless infrastruktúra esetén problémát okoz. Hiszen gyakran előfordul, hogy két kliens ugyanazon nevű fájt akar használni ideiglenes állományként, illetve a swapfile-nak is közös használatúnak kellene lenni, de ez nem lehetséges.