Automatické klonování Linuxu

3. 5. 2008 16:09 (aktualizováno) Jan Hrach

O vývojové verzi jednoho skriptu a úpravách Slaxu.

Představte si, že jste admin někde a vaše společnost nepoužívá LTSP. Máte nakoupeno pár počítačů a na jednom odladěný Linux. A potřebujete ten Linux co nejjednodušeji naklonovat na ty ostatní počítače.
Nebo chcete prodávat počítače s předinstalovaným Linuxem.

Abstrakt

Hrál jsem si se Slaxem a spatlal jsem primitivní automatické klonovadlo. Odladím ho, až ho budu potřebovat.

Jak to funguje

Klonovadlo nekopíruje ddčkem, ale pracuje na úrovni souborů.
Na cílovém počítači nabootuje z CD Slax, z HTTP serveru si stáhne skript a ten spustí. Skript připojí přes HTTPFS (modul do FUSE) archiv se systémem, napartišnuje disk, archiv rozbalí a zapíše GRUB. Pokud tedy aktualizujete zdrojový archiv, nemusíte přepalovat CDčka s klonovadlem.

Příprava

Zdrojový počítač

Systém upravíme k obrazu svému, ve fstab a /boot/grub/menu.lst nahradíme UUID normálními jmény a spustíme:

tar cvpzf /tarball.tgz --exclude=/proc/* --exclude=/lost+found --exclude=/mnt/* --exclude=/media/* --exclude=/sys/* --exclude=/tarball.tgz /

Soubor tarball.tgz nahrajeme do rootu našeho webserveru.

Úprava Slaxu

Stáhneme si aktuální Slax (tarovou verzi pro USB klíčenky), roztarujeme do prázdného adresáře a ze slax/base vyhodíme nepotřebné moduly (KOffice, KDE). Do slax/rootcopy/sbin stáhneme z hnízda soubor httprun, upravíme v něm adresu našeho serveru a nastavíme mu spouštěcí práva. Dále do boot/slax.cfg přidáme následující:

LABEL httprun
MENU LABEL Slax httprun
KERNEL /boot/vmlinuz
APPEND initrd=/boot/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw autoexec=httprun
TEXT HELP
                                     More about currently selected:

                                     run command from http sevrer
ENDTEXT

Skriptem slax/make_iso.sh vyrobíme iso.

HTTP server

Do rootu serveru kromě tarball.tgz nakopírujeme také myscript.sh z hnízda a ten upravíme (je bohatě komentován lámanou angličtinou).

Nakonec na cílovém počítači nabootujeme iso upraveného Slaxu, pomodlíme se a sledujeme chybové hlášky.

Tímto způsobem se mi podařilo naklonovat Ubuntu 8.04 a Mandrivu 2008.1. Debian (Etch) se v pořádku rozbalil, ale GRUB se mi nainstalovat nepodařilo. Jeho zastaralé jádro 2.6.18 se chová s řadičem ve VirtualBoxu nějak podivně. Lenny by asi šel.

Skript je v hluboké alfaverzi a byl zkoušen jen ve VirtualBoxu. Manipulaci s parted a mkfs věnujte zvýšenou opatrnost. Nenadávejte mi za technickou primitivnost, teprve se učím :-)

Sdílet