# Autoinstall-Seed für die EspoCRM-Kunden-VM `user-data` und `meta-data` bilden eine NoCloud-Quelle. Das Verzeichnis ist öffentlich abrufbar – es enthält deshalb **keine Geheimnisse** (kein benutzbares Passwort, kein RMM-Token; siehe [ADR 0004](../docs/decisions/0004-bootstrap-der-kunden-vm.md)). ## Ablageort **Für den Testbetrieb (Entscheidung 22.09.2026, Variante 1):** Der Seed liegt zusätzlich in `gordon.zimm/ubuntu-autoinstall` unter `espocrm/`, weil der Installer ohne Anmeldung abruft und die Organisation `espoCRM` anonym nicht lesbar ist. Boot-Zeile: ``` autoinstall ds=nocloud-net\;s=https://gitea.subcura.net/EspoCRM_Public/espo-deploy/raw/branch/main/autoinstall/ ``` **Dieses Verzeichnis ist die Quelle.** Änderungen hier vornehmen und anschließend nach `ubuntu-autoinstall/espocrm/` kopieren (`user-data`, `meta-data`). Der endgültige Ablageort bleibt offen → O-26. ## Hintergrund zur Wahl (O-26) Der Installer ruft die Dateien **ohne Anmeldung** ab. Dieses Repo liegt in der Organisation `espoCRM`, die nicht öffentlich sichtbar ist: Ein anonymer Abruf von `https://gitea.subcura.net/espoCRM/espo-fleet-ops/raw/branch/main/autoinstall/user-data` liefert **404**, obwohl das Repo selbst als „nicht privat“ geführt wird (geprüft am 22.09.2026; dasselbe gilt für `espoCRM/espo-dev`). Anonym erreichbar ist dagegen `gordon.zimm/ubuntu-autoinstall`. Solange das nicht entschieden ist, kommt der Seed dort hin, wo er abrufbar ist. Kandidaten: | Variante | Boot-Zeile | Bemerkung | |---|---|---| | Unterverzeichnis im bestehenden öffentlichen Repo | `autoinstall ds=nocloud-net\;s=https://gitea.subcura.net/EspoCRM_Public/espo-deploy/raw/branch/main/autoinstall/` | schnellster Weg, stört den bestehenden Seed im Wurzelverzeichnis nicht | | eigenes öffentliches Repo, z. B. `gordon.zimm/espo-autoinstall` | `… ds=nocloud-net\;s=…/gordon.zimm/espo-autoinstall/raw/branch/main/` | klar abgegrenzt, ein Zweck | | Organisation `espoCRM` auf „öffentlich“ stellen | `… ds=nocloud-net\;s=…/espoCRM/espo-fleet-ops/raw/branch/main/autoinstall/` | macht auch `espoCRM/espo-dev` für jeden lesbar – nicht empfohlen | | Seed auf der Installationsmedium-Seite (zweites CIDATA-Image) | keine URL nötig | für die Flotte die sauberste Lösung, in Phase 3 zu prüfen | ### Das Semikolon muss maskiert werden In der GRUB-Kommandozeile trennt `;` zwei GRUB-Befehle. Unmaskiert bekommt der Kernel nur `autoinstall ds=nocloud-net`, die Seed-URL fällt weg – der Installer startet dann ganz normal interaktiv. Deshalb **`\;`** schreiben (so steht es auch in der README von `ubuntu-autoinstall`). Gleichwertig: die ganze Angabe in Anführungszeichen setzen, `autoinstall "ds=nocloud-net;s=https://…/espocrm/"`. Nach dem Booten der Ubuntu-Server-24.04-ISO im GRUB-Menü `e` drücken, die gewählte Zeile vor `---` einfügen, Strg+X. Die Installation läuft ohne Rückfragen durch und **schaltet die VM am Ende aus**. Vor dem nächsten Start das ISO trennen, sonst startet die Installation erneut. ## Nach dem ersten Start (einmal je VM) Die Schritte liegen auch als `/root/ERSTINBETRIEBNAHME.txt` auf der VM: 1. An der Hyper-V-Konsole anmelden. Das **Initialpasswort** steht über dem Login-Prompt (`/etc/issue`); der Wechsel wird erzwungen. Neues Passwort im Secure Information Store der Site hinterlegen. 2. RMM-Agent installieren – Token aus *Endpoints → Devices → Manage → Download Agent*: ```bash cd /tmp && curl -fsSLOJ "" && chmod +x *_ITSPlatform_TKN*.run && sudo ./*_ITSPlatform_TKN*.run; rm -f *_ITSPlatform_TKN*.run ``` `-O -J` behält den vom Server vorgegebenen Dateinamen samt `_TKN` – daraus liest der Installer den Token. Das abschließende `rm` hängt an `;`, damit die Datei mit dem Token auch nach einem Abbruch verschwindet. Der Token steckt im Dateinamen; der Installer liest ihn aus seiner eigenen Aufrufzeile. Wird die Datei umbenannt (`-o name.run`) oder nur mit `-O` geladen (dann heißt sie `setup`), fehlt der Token und muss gesetzt werden: `sudo env TOKEN= ./datei.run`. Prüfen: `systemctl status ITSPlatform` und `tail /var/log/ITSPlatform-install.log`; das Gerät erscheint nach wenigen Minuten in der Site. Einzelheiten zur Token-Übergabe: [../docs/quellen/connectwise-rmm-notizen.md](../docs/quellen/connectwise-rmm-notizen.md) 3. Hinweiszeile mit dem Initialpasswort aus `/etc/issue` entfernen. 4. Prüfen, dass das Gerät binnen weniger Minuten in der richtigen Site erscheint. ## Was der Seed einrichtet | Bereich | Wert | |---|---| | Sprache/Tastatur/Zeitzone | de_DE.UTF-8, de, Europe/Berlin | | Netz | erste Ethernet-Schnittstelle (`match: e*`), DHCPv4, kein DHCPv6 | | Konto | `administrator`, Passwort je VM zufällig, Wechsel beim ersten Anmelden erzwungen | | SSH | Server installiert, Passwortanmeldung erlaubt ([ADR 0003](../docs/decisions/0003-zugangsmodell-ssh.md)) | | Pakete | `linux-cloud-tools-virtual` (Hyper-V-Integrationsdienste), `curl`, `bzip2` | | Platten | `/` 20 GiB, swap 4 GiB, `/var/lib/docker` 20 GiB, `/srv` der gesamte Rest (keine Reserve in der VG) | | Zum Schluss | vollständiges `apt full-upgrade`, `autoremove`, `clean`, dann `poweroff` | Hintergrund zur Aufteilung: [plattenlayout-erlaeuterung.md](../docs/entwuerfe/plattenlayout-erlaeuterung.md).