Vytváření obrázků bootstrap v1.0


Vytváření obrázků bootstrap v1.0

Rád bych vám představil framework nazvaný boobstrap, napsaný v shellu POSIX, pro vytváření zaváděcích obrazů s distribucemi GNU/Linux. Rámec vám umožňuje projít celým procesem ve třech jednoduchých krocích: od nasazení systému v chrootu, vytvoření bitové kopie initramfs, která obsahuje chrootovaný systém, a nakonec zaváděcí ISO obraz. boobstrap obsahuje tři nástroje mkbootstrap, mkinitramfs a mkbootisofs.

mkbootstrap nainstaluje systém do samostatného adresáře, existuje nativní podpora pro CRUX a v případě distribucí založených na Arch Linux / Manjaro a Debianu je třeba použít nástroje třetích stran pacstrap, basestrap a debootstrap.

mkinitramfs vytvoří obraz initramfs, můžete použít nainstalovaný systém v adresáři jako „overlay“, komprimovaný pomocí SquashFS, nebo po nabootování do systému pracovat přímo v tmpfs. Takže například příkaz mkinitramfs `mktemp -d` --overlay "arch-chroot/" --overlay "/home" --squashfs-xz --output initrd vytvoří soubor initrd, včetně dvou překryvů s "arch- chroot/" systém a váš "/home", komprimovaný pomocí SquashFS, který pak můžete nabootovat přes PXE do tmpfs, nebo vytvořit bootovatelný ISO obraz pomocí tohoto initrd.

mkbootisofs vytvoří zaváděcí ISO obraz BIOS/UEFI ze zadaného adresáře. Stačí do adresáře vložit /boot/vmlinuz a /boot/initrd.

boobstrap nepoužívá busybox a pro vytvoření fungujícího prostředí initramfs se pomocí ldd zkopíruje minimální sada programů, které jsou nutné pro zavedení a přepnutí do systému. Seznam programů ke kopírování, stejně jako vše ostatní, lze nakonfigurovat pomocí konfiguračního souboru /etc/boobstrap/boobstrap.conf. Také si můžete libovolnou minimalistickou distribuci nainstalovat do samostatného chroot/, ze kterého pak můžete vytvořit plnohodnotné prostředí initramfs. Jako takové minimalistické, ale zároveň plnohodnotné prostředí se navrhuje použít šablonu „crux_gnulinux-embedded“, která po xz zabírá kompromisních 37 MB. busybox kromě své velikosti, 3-5 MB versus 30-50 MB plnohodnotného prostředí GNU/Linux, již nenabízí žádné výhody, takže použití busyboxu v projektu se nezdá vhodné.

Jak rychle zkontrolovat funkčnost a začít? Nainstalujte a spusťte.

# git klon https://github.com/sp00f1ng/boobstrap.git
#cd prsní řemínek
# make install# boobstrap/tests/crux_gnulinux-download-and-build
# qemu-system-x86_64 -enable-kvm -m 1G -cdrom tmp.*/install.iso

Musíte také nainstalovat závislosti, konkrétně: cpio, grub, grub-efi, dosfstools, xorriso. Použití squashfs-tools není nutné, můžete pracovat v tmpfs s odpovídajícím množstvím paměti RAM. Pokud v systému něco chybí, boobstrap to oznámí při spuštění.

Pro zjednodušení vytváření konfigurací navrhuje boobstrap používat „šablony“ a „systémy“, jejichž podstatou je používat „šablony“ (bootstrap-templates/) k rychlé instalaci systémů ze souboru a přímo „systémy“ (bootstrap- systémy/) používané k nastavení finálních konfigurací.

Například spuštěním skriptu boobstrap/bootstrap-templates/crux_gnulinux-embedded.bbuild se nainstaluje minimální konfigurace systému CRUX GNU/Linux a uloží se do souboru crux_gnulinux-embedded.rootfs, poté spustíte boobstrap/bootstrap-systems /default/crux_gnulinux.bbuild který načte primární konfiguraci ze zmíněného souboru, provede veškerou potřebnou konfiguraci a připraví bootovací ISO. To je výhodné, když například mnoho systémů používá stejný typ konfigurace: abyste nepopisovali pokaždé stejnou sadu balíčků, použijete jednu šablonu, na jejímž základě vytvoříte zaváděcí obrazy systémů s konečnou konfigurací.

Kde to všechno mohu použít?

Systém jednou nakonfigurujete v souboru a jeho spuštěním jej sestavíte a/nebo aktualizujete. Systém běží v tmpfs, díky čemuž je v podstatě na jedno použití. Pokud systém selže, můžete se vrátit do původního stavu jedním kliknutím na tlačítko Reset. Můžete bezpečně spustit rm -rf /.

Můžete konfigurovat konfigurace všech svých systémů lokálně, vytvářet obrazy, testovat je na virtuálním počítači nebo samostatném hardwaru, poté je nahrát na vzdálený server a spustit pouze dva příkazy kexec -l /vmlinuz —initrd=/initrd && kexec -e aktualizovat celý systém a restartovat jej do tmpfs.

Stejně tak můžete všechny systémy např. na VDS přenést do práce v tmpfs a zašifrovat disk /dev/vda a používat jej pouze pro data, aniž byste na něm museli mít operační systém. Jediným „bodem úniku informací“ bude v tomto případě pouze „studený výpis“ paměti vašeho virtuálního stroje a v případě kompromitace systému (například uhodnutím hesla ssh nebo zranitelností v Exim), můžete si stáhnout nový ISO prostřednictvím „ovládacího panelu“ vašeho poskytovatele, abyste uvedli VDS zpět do provozu, aniž byste zapomněli upravit konfiguraci systému, abyste uzavřeli všechny zranitelnosti. Je to rychlejší než přeinstalace, následná konfigurace a/nebo obnova ze zálohy, protože v podstatě ISO ke stažení s vaším systémem je vaší zálohou. "Sedm problémů - jeden reset."

Nakonec si můžete vytvořit libovolnou distribuci pro své potřeby, zapsat ji na USB disk a pracovat v ní, aktualizovat ji podle potřeby a znovu ji přepsat na USB disk. Všechna data jsou uložena v cloudu. Už se nemusíte starat o bezpečnost systému a zálohovat, když se systém, opakuji, stal v podstatě „na jedno použití“.

Vaše přání, návrhy a připomínky jsou vítány.

V úložišti na níže uvedeném odkazu je podrobný soubor README (v angličtině) s popisem každého nástroje a příklady použití, na odkazu je také podrobná dokumentace v ruštině a historie vývoje: Komplex spouštěcích skriptů Boobstrap.

Zdroj: linux.org.ru

Přidat komentář