Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
arch:boot_iso [18.12.2022 09:46. ] – angelegt django | arch:boot_iso [31.10.2023 18:52. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Custom Boot Image als Grundlage für Orchstrierung ====== | ====== Custom Boot Image als Grundlage für Orchstrierung ====== | ||
+ | {{: | ||
+ | Im Kapitel [[install|Arch Linux - (manuelle) Minimalinstallation]] sind wir schon Kurz auf den Umstand eingegangen, | ||
+ | |||
+ | Hierzu benötigen wir natürlich ein auf unsere Anforderungen hin zugeschnittenes Boot-Image, welches unter anderem einem [[linux: | ||
+ | |||
+ | Basis für den Bau eines individuellen Boot-Image ist die der Artikel **[[https:// | ||
+ | |||
+ | ===== Voraussetzung ===== | ||
+ | Basis für den Bau dieses Custom Boot Image ist unsere [[install|Arch Linux - (manuelle) Minimalinstallation]] aus dem Kapitel zuvor, auf der wir nun weiter aufsetzen werden. | ||
+ | |||
+ | ===== Konfiguration und Bau des ISO-Images ===== | ||
+ | ==== Update der vorhandenen Installation ==== | ||
+ | Bevor wir zur Installation der benötigten Werkzeuge, Installation und Bau unseres ISO-Images schreiten, aktualisieren wir noch unser bestehendes System. | ||
+ | |||
+ | === Keyring Initialisieren === | ||
+ | Zunächst initialisieren wir den Keyring, damit die PGP-singnierten Pakete auch mit dem aktuellen Schlüsselmaterial validiert werden können. | ||
+ | # pacman-key --init | ||
+ | |||
+ | === Default Schlüssel neu laden === | ||
+ | Im nächsten Schritt laden wir die Default Schlüssel neu. | ||
+ | # pacman-key --populate archlinux | ||
+ | < | ||
+ | ==> Updating trust database... | ||
+ | gpg: next trustdb check due at 2023-04-21</ | ||
+ | |||
+ | === System aktualisieren === | ||
+ | Abschliessend aktualisieren wir unser vorhandenes System. | ||
+ | # pacman -Syu | ||
+ | < | ||
+ | :: Synchronizing package databases... | ||
+ | core is up to date | ||
+ | extra is up to date | ||
+ | | ||
+ | :: Starting full system upgrade... | ||
+ | there is nothing to do</ | ||
+ | |||
+ | Nun haben wir die Basis geschaffen für die weitere Installation der benötigten Komponenten für den Bau unseres ISO-Images. | ||
+ | |||
+ | ==== Installation von archiso ==== | ||
+ | Für die Erstellung von Arch Linux Live-CD/ | ||
+ | |||
+ | Mit Hilfe das Paketmanagers **'' | ||
+ | # pacman -S --noconfirm archiso | ||
+ | |||
+ | Was uns diese Paket alles mitbrachte, können wir bei Bedarf und Interesse mit folgendem Befehl uns anzeigen lassen. | ||
+ | # pacman -Qil archiso | ||
+ | |||
+ | ==== Benutzerprofile baseline und releng ==== | ||
+ | Im Paket **'' | ||
+ | * **baseline** \\ Im baseline Profil enthalten sind lediglich die aller nötigsten Pakete, welche zum Booten eines Live-ISO-Images und zur anschliessenden Grundinstallation von Arch Linux benötigt werden. | ||
+ | * **releng** \\ Das releng Profil hingegen, enthält alle tagesaktuellen Pakete und entspricht dem monatlich veröffentlichten Installationsmedium und ist im Gegensatz des baseline Profils etwa dreimal so gross, aber mit einer Gesamtgrösse von nicht einmal 800 MB doch überschaubar. | ||
+ | |||
+ | Für unser eigenes individuell angepasstes Boot-ISO-Image wollen als Basis das **'' | ||
+ | # cp -ar / | ||
+ | |||
+ | ==== SSH Daemon ==== | ||
+ | Wie Eingangs erwähnt wollen wir später **[[linux: | ||
+ | |||
+ | === Verzeichnis für den systemd autostart des sshd anlegen === | ||
+ | Wir stellen also zunächst sicher, dass der SSH-Daemon auf dem Zielsystem gestartet wird. | ||
+ | # mkdir -p / | ||
+ | |||
+ | === symbolic-link für den Autostart des SSHD setzen === | ||
+ | Anschliessend setzen wir für den Autostart des SSH-Daemon einen symbolischen link im zuvor angelegten Verzeichnis. | ||
+ | # ln -s / | ||
+ | |||
+ | ==== Benutzer root ==== | ||
+ | Der initiale Verbindungsaufbau von Ansible wird dann über den Benutzer **'' | ||
+ | |||
+ | === Passwort === | ||
+ | Das Passwort unseres Benutzers **'' | ||
+ | |||
+ | Wie und wo das Passwort eines Benutzers hinterlegt ist, sehen wir uns kurz an Hand des folgenden Beispiels kurz etwas genauer an: | ||
+ | ansible: | ||
+ | |||
+ | Die einzelnen Werte sind mit einem Doppelpunkt **'':'' | ||
+ | und haben folgende Bedeutung: | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **''::'' | ||
+ | * **''::'' | ||
+ | |||
+ | Wir brauchen also demnach zwei Dinge: | ||
+ | - Die Tage die seit dem 01.01.1970 vergangen sind und | ||
+ | - das gehashte Passwort unseres Benutzers **root**. | ||
+ | |||
+ | Den ersten Wert berechnen wir einfach wie folgt: | ||
+ | # echo $(( ($(date -d $(date +%F) +%s) - $(date -d 1970-01-01 +%s)) / 86400 )) | ||
+ | |||
+ | 19344 | ||
+ | |||
+ | Den Passwort-Hash mit einem **SHA-512**-Salt erzeugen wir wie folgt: | ||
+ | # openssl passwd -6 | ||
+ | < | ||
+ | Verifying - Password: | ||
+ | $6$owZuNz359oeC8VSg$ba5HdCCuShYt4YcQ5HKp.N37LH1YIjFOb3ZgYgYfDqUnIHGv18B3sPmVgbzhdn7dwdWKY5PFd2/ | ||
+ | |||
+ | Beide ermittelten Werte hinterlegen wir nun in unserer**''/ | ||
+ | # vim / | ||
+ | <file / | ||
+ | |||
+ | === SSH-Key === | ||
+ | Nun benötigen wir noch den Public-Key unseres Ansible-Accounts. | ||
+ | $ cat .ssh/ | ||
+ | |||
+ | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILti67aZOSetfvNFxVVqkJAfSKXjyvemB3kRZEQ5q/ | ||
+ | |||
+ | Für diesen Schlüssel benötigen wir auf dem Zielsystem das betreffende Verzeichnis, | ||
+ | # mkdir / | ||
+ | |||
+ | mkdir: created directory '/ | ||
+ | |||
+ | Anschliessend passen wir noch die Rechte an dem Verzeichnis an. | ||
+ | # chmod 700 / | ||
+ | |||
+ | Im nächsten Schritt hinterlegen wir unseren public-key in der Datei **'' | ||
+ | # vim / | ||
+ | <file / | ||
+ | |||
+ | Auch hier passen wir noch die Rechte an der Datei an. | ||
+ | # cmod 600 / | ||
+ | |||
+ | === Autologin deaktivieren === | ||
+ | Da wir nicht möchten, dass der Benutzer **'' | ||
+ | # rm / | ||
+ | |||
+ | ==== Bau des ISO-Images ==== | ||
+ | Nach Abschluss der Vorarbeiten können wir nun unser eigenes Arch Linux Boot-ISO-Image wir folgt erstellen: | ||
+ | # mkarchiso -v -w / | ||
+ | |||
+ | Je nach Performance unserer Test-Umgebung steht und nach ca. 10 - 15 Minuten im gewählten Verzeichnis **''/ | ||
+ | < | ||
+ | Writing to ' | ||
+ | |||
+ | [mkarchiso] INFO: Done! | ||
+ | 819M / | ||
+ | |||
+ | <WRAP center round tip 65%> | ||
+ | Will man erneut die Erstellung des ISO-Images anstossen, löscht man vor einem erenuten Aufruf von **'' | ||
+ | | ||
+ | # rm -rf / | ||
+ | </ | ||
+ | |||
+ | Nun müssen wir unser erstelltes ISO-Image nur noch auf dem Virtualisierungsknoten in das zugehörige Verzeichnis verschieben, | ||
+ | |||
+ | ===== Zwischenergebnis ===== | ||
+ | <WRAP center round important 80%> | ||
+ | **Wichtig**: | ||
+ | |||
+ | Wir werden natürlich nicht jedes mal den Bau eines aktuellen auf unsere Bedürfnisse zugeschnittenes **//Custom Boot Image//** per Hand auf Basis dieser Musterlösung aus dem WIKI via **//cut ' | ||
+ | </ | ||
+ | |||
+ | ===== Muster-Test-VM zurückbauen ===== | ||
+ | Nach getaner Arbeit benötigen wir zur gegebenen Zeit unsere Test-Maschine nicht mehr. Wir können diese daher wie gewohnt herunterfahren ... | ||
+ | # virsh shutdown vml000200 | ||
+ | |||
+ | ... oder natürlich auch auf die "harte Tour": | ||
+ | # virsh destroy vml000200 | ||
+ | |||
+ | Anschliessend löschen wir die VM samt ihrem zugehörigen Image vom System. | ||
+ | # virsh undefine vml000200 --remove-all-storage | ||
+ | < | ||
+ | Volume ' | ||
+ | |||
+ | ====== Links ====== | ||
+ | * **[[start|Zurück zur " | ||
+ | * **[[wiki: | ||
+ | * **[[https:// | ||
+ | |||
+ | |||