Grml Live-Linux für Deployment + Desaster Recovery Michael Prokop <[email protected]> Michael Prokop Projektleiter von Grml Debian-Entwickler IT + Open Source Consultant (Grml-Solutions.com) Mitglied im Debian Forensic-Team Gründer von Grml-Forensic Editor im Operating Team von InfoQ.com .. mag Katzen! Grml? 2004 32bit 64bit Bekannt für „unübliche“ Releasenamen Lackdose-Allergie Hustenstopper Schluchtenscheisser Hello-Wien Funkenzutzler Meilenschwein Bootenschnitzl Skunk Winterschlapfn Dioptrienotto Eierspass Tokolytika … und aktuell: Besuchertasche Wer nutzt Grml? Was ist unter der Haube? • Debian • offizielle Debian-Pakete • Grml-Pakete (Open Source + öffentlich zugänglich) • Aufs als Overlay-System • SquashFS als komprimiertes root-fs Core-Technologien? Userspace udev initramfs-tools live-initramfs ... Debian-Pakete 3rd party Software Dateisystem Kernel Block Device Hardware grml / grml-live Booten • • • • Textmodus 12 virt. Konsolen screen, getty, iptstate, multitail, htop X.org optional: – grml-x – Bootoption startx Praktische Bootoptionen • • • • • grml nodhcp grml ssh=passwort grml2ram / grml toram=file.squashfs grml lang=de / keyboard=de ... LVM + RAID • LVM: – Bootoption „lvm“ (nolvm) – „Start lvm2“ [:= /etc/init.d/lvm2 start] • SW-RAID: – -Bootoption „swraid“ (noswraid) – „Start mdadm-raid“ Neues in 2010.04 • • • • • dmraid=on / dmraid=off / nodmraid vnc=password startx[=wm] bootid=... verbessertes Serial Console Setup robusteres PXE-Booten → PXE mit mehreren NICs • • • • Default: alle NICs via DHCP 'ethdevice=eth1': nur eth1 'ethdevice=eth0,eth1': eth0 + eth1 'ethdevice-timeout=30': Timeout für Konfiguration von 15 (Default) auf 30 Sekunden erhöhen PXE-Boot Bsp. grml-quickconfig • Modularisiert + konfigurierbar: % cat /usr/share/grml-quickconfig/010-network.sh # grml-network module for grml-quickconfig LINE='print_line "Configure ${HIGHLIGHT}n$ {NORMAL}etwork ($HIGHLIGHT_NAME} netcardconfig${NORMAL})"' KEY=(n) FUNCTION='run netcardconfig' display_entry() { return 0 ; } grml2usb • Grml auf USB-Stick installieren • grml2usb bietet Support für Multi-ISOs: # grml2usb \ --bootoptions „ssh=GLT10“ \ grml-medium_2010.04.iso \ grml64-medium_2010.04.iso \ /dev/sdb1 grml-terminalserver • • Use Case: Grml auf vielen Clients [gleichzeitig] booten Grml via PXE booten – schnell und einfach: # grml-terminalserver HA PXE Setup • • • • DRBD Heartbeat Redundante Hardware Bootoption netscript, z.B.: netscript=http://example.org/foo.sh netscript • Konfiguration: cat > script.sh << EOF #!/bin/sh printf „hello world\n“ EOF python -m SimpleHTTPServer • Grml booten via: ... netscript=http://example.org:8000/script.sh HA PXE - Deployment System bootet Ist System bereits registriert? Nein Ins DeploymentNetzwerk booten Ja Deployment Ins ProduktionsNetzwerk booten System registrieren/ Server bereits deployed? inventarisieren Ja Nein Produktivbetrieb Grml via PXE ohne NFS booten • Kernel, initrd + squashfs vom ISO extrahieren • Webserver liefert Dateien • pxelinux.cfg/default: LABEL grml-small-2010.04 MENU LABEL grml-small 2010.04 (HTTP) kernel grml/2010.04/small-linux26 append initrd=grml/2010.04/small-minirt26.gz \ boot=live \ fetch=http://example.org/grml/grml-small.squashfs \ nodhcp noeject vga=791 ssh=glt10 • s.a. http://www.pro-linux.de/news/2008/13569.html myconfig myconfig=/dev/sda1 scripts=boot/grml/network.sh #!/bin/sh ip link set dev eth0 up ip addr add dev eth0 192.168.8.240/24 brd + ip route add default via 192.168.8.254 echo nameserver 192.168.8.254 > /etc/resolv.conf echo “grml:1234” | chpasswd /etc/init.d/ssh start Booten via Remote Adapter • HP iLO • IBM RSA/AMM/... • ... HP i(ntegrated) L(ights) O(ut) 2 • Login via ssh → iLO-Prompt (</>hpiLO->): power reset vsp vm cdrom get vm cdrom insert http://1.2.3.4/grml.iso vm cdrom set [boot_once|boot_always] power warm • Grml mit Bootoption „serial“ booten IBM Remote Disk • Remote Supervisor Adapter II (RSA II) • BladeCenter [Advanced] Management Module (AMM): ssh admin@$BLADE boot -T system:blade[$NR] Blade Tasks → Remote Control → Start Remote Control → Remote Disk IBM AMM – Remote Disk 1/3 IBM AMM – Remote Disk 2/3 IBM AMM – Remote Disk 3/3 Serielle Konsole mit Grub # main serial config: serial --unit=0 –speed=115200 [--word=8 --parity=no –stop=1] # terminal config for grub1: terminal serial console # terminal config for grub2: terminal_input console serial Tipps: • http://wiki.grml.org/doku.php?id=rescue • Offical HP doc – Google for „Integrated LightsOut Virtual Serial Port configuration and operation“ grml-live • Framework fürs Bauen von Debianbasierten Live-Systemen – Offizielles Buildsystem für Grml • Basiert auf FAI (Full Automated Installation) • Klassenbasiert: – Software-Auswahl simpel via Plaintext-Datei • Vollautomatisierbar: – daily.grml.org Deployment • Installation • Provisioning/Konfiguration Installation • Debian: – [c]debootstrap – grml-debootstrap – FAI • Gentoo: http://www.gentoo.org/doc/en/handbook/handb ook-x86.xml • Fedora: – febootstrap – cobbler/koan grml-debootstrap $PARTITIONING # upcoming: fai-setup-storage echo 'y' |grml-debootstrap -m $MIRROR \ -r $SUITE -t $TARGET --hostname $HOSTNAME \ --password $PWD cat << EOT |grml-chroot $TARGET /bin/bash $DO_WHATEVER_YOU_WANT_IN_THE_CHROOT EOT [fai-]setup-storage # cat << EOT | setup-storage -X -f disk_config sdc primary 100 - primary 50 - primary 20 - primary 0- - disk_config raid raid1 / sda1,sdb1 ext3 rw,errors=remount-ro raid1 /drbd sda2,sdb2 swap rw raid1 swap sda3,sdb3 swap rw raid1 /data sda4,sdb4 ext3 default EOT FAI • Klassenbasiert: /etc/grml/fai/config/scripts/FOO/43-hostname /etc/grml/fai/config/files/etc/foo.rc/FOO • Senior-Admin: Design des FAI Configspace • Junior-Admin: Deployment, Operating Konfiguration • • • • puppet cfengine bcfg2 .... Fsckup Recovery • Automatisiertes Deployment: – Installation oder Image einspielen – Konfiguration – Optional Daten/Backup einspielen • Fsckup? – dd_rescue – testdisk Use case: Sipwise Tricks zum Booten • grml bootfrom=/dev/sda1 → „force“ • grml isofrom=/dev/sda1/grml.iso → direkt angegebenes ISO booten • grml findiso=/grml_2009.05.iso → Suche nach angegebenem ISO • Tip: kann direkt in Grub2 integriert werden! http://blog.zugschlus.de/archives/825-grmlals-eigenes-Rescuesystem.html • Supergrub Disk wird es ebenfalls OOTB unterstützen Angepasste Konfiguration 1/2 DCS (Debs, Configuration + Scripts) – save-config / restore-config – FS-Label GRMLCFG: • grml.sh → das eigene Skript • config.tbz → Konfigarchiv – http://grml.org/config/ Angepasste Konfiguration 2/2 Root-Persistency: – – – – live-snapshot -d … FS-Label „live-rw“ Bootoption „persistent“ http://wiki.grml.org/doku.php? id=persistency Thanks Michael Prokop [email protected] @mikagrml @grmlproject http://grml.org/
© Copyright 2025 ExpyDoc