Posts by fummeln
-
-
Bei mir laufen die Docker Anwendungen auf einem Pi und ich ziehe mir einfach nach größeren Änderungen (Updates etc.) ein Image von der microSD mit dem Befehl: sudo dd if=/dev/sdc of=/home/username/backup.img bs=1M conv=sync,noerror status=progress
Anschließend verkleinere ich das Image noch mit einem Skript welches es bei GH zum Download gibt: sudo pishrink.sh backup.img backup_pishrink.img
Wichtig: Bevor ihr den Befehl ausführt, vergesst nicht vorher die Partitionen auszuhängen. Klappt bislang hervorragend bei mir. Wenn mal was mit der microSD Karte sein sollte, dann kann ich einfach das Image nehmen und auf eine neue microSD Karte mit Balena flashen und bin ready to go.viel zu aufwendig ! hast du schon mal was von Docker Volumes gehört? d.h. Ordner im Docker sind von außerhalb des Dockers erreichbar ... wenn man das geschickt anstellt, dann musst du nur diese Ordner saven und kannst damit jederzeit nen Docker neu erstellen aber hast keine Daten verloren
-
Ich habe diverse Scripte, Docker-Images und config files auf einem lokalen http Server liegen. Stecke dann meinen USB-Stick in den PC und ohne irgend ein zutun ist 5 min später der neue Server am laufen und alles eingerichtet.
Nun möchte ich diese "Installationsdaten" allerdings mit auf den USB-Stick (bootfähiges Image von Ubuntu Server) packen, damit ich mir den Umweg über den lokalen Server sparen kann.
Wie geht das über http? Eigentlich ganz einfach, wenn man mal rausgefunden hat wie
Die Befehle unter runcmd: werden nämlich beim ersten Booten des Servers ausgeführt. Durch den Eintrag in grub.cfg weiß Ubuntu, dass es sich um eine unattended Installation handelt und zieht allle notwendigen Dateien von meinem lokalen Server und führt die Scripte aus. Nachfolgend der Inhalt der dafür maßgeblichen Dateien:user-data:
Code
Display More#cloud-config autoinstall: user-data: runcmd: - mkdir -p /home/user/install - apt install -y nano ufw samba rsync - wget -r -np -nH -P /home/user/install http://123.456.789.123:8800/ - chmod +x /home/user/install/* - bash /home/user/install/install.sh - reboot updates: security version: 1Die grub.cfg des USB-Sticks:
Code
Display Moreset timeout=5 loadfont unicode set menu_color_normal=white/black set menu_color_highlight=black/light-gray set default=2 menuentry "Try or Install Ubuntu Server" { set gfxpayload=keep linux /casper/vmlinuz --- initrd /casper/initrd } menuentry "Auto Install /cdrom USB" { linux /casper/vmlinuz autoinstall 'ds=nocloud;s=/cdrom/install/' --- initrd /casper/initrd } menuentry "Auto Install http" { linux /casper/vmlinuz autoinstall ds=nocloud-net\;s=http://123.456.789.123:8800/ --- initrd /casper/initrd } grub_platform if [ "$grub_platform" = "efi" ]; then menuentry 'Boot from next volume' { exit 1 } menuentry 'UEFI Firmware Settings' { fwsetup } else menuentry 'Test memory' { linux16 /boot/memtest86+x64.bin } fiStruktur auf meinem http Server:
Code
Display More├── user-data ├── meta-data ├── script1.sh ├── script2.sh ├── install.sh └── Docker └── Dockervolume1 └── Dateien └── Dockervolume2 └── Dateien └── image └── image.tar
Struktur auf dem USB-Stick:Code
Display More└── boot └── grub └── grub.cfg ├── casper ├── dists ├── EFI ├── install └── user-data └── meta-data └── Docker └── Dockervolume1 ├── poolDie Ordnerstruktur auf dem http Server ist gleich mit dem Ordner /install auf dem USB-Stick.
Mit Boot Option 1 (install von /cdrom/install/) wird auch ein unattended Install erkannt und ausgeführt ... leider nur bis zum Punkt runcmd: irgendwie wird der USB-Stick während der Installation "entmountet" und darum kann ich die Daten aus dem /install Ordner nicht mehr kopieren. Ich habe es auf unzählige Arten mit verschiedenen Ordnern probiert. Auch das manuelle mounten schlägt fehl. Hat einer einen Tipp?
Hier noch runcmd vom USB stick: