Kihagyás

Felügyelet nélküli telepítések

Az OmarOS ISO a billentyűzetnél lévő személy nélkül is telepítheti önmagát. Ha a telepítő talál egy cidata címkéjű második meghajtót, amely a konfigurációs fájljait hordozza, lemásolja őket, teljesen kihagyja a beállításvarázslót, és magától újraindul a kész rendszerbe. Nincs különleges ISO-build, nincs extra rendszerindítási menübejegyzés — ha nincs ilyen meghajtó csatlakoztatva, semmi sem változik, és a normál varázslót kapod.

Ez nagyszerűvé teszi az OmarOSt eldobható fejlesztői környezetek alapimage-ének: hozz létre egy VM-et Proxmoxban vagy Packerrel, indítsd el, sétálj el, SSH-zz be. A cidata a cloud-init NoCloud címkéje, így a szokásos virtualizációs eszközök mind tudják már, hogyan csatoljanak ilyen meghajtót.

A konfigurációs fájlok

A fájlok pont azt jelentik, amit a telepítő saját varázslója ír, így a kiindulási készlet beszerzésének legegyszerűbb módja egy interaktív telepítés futtatása (mondjuk egy VM-ben) és a /root mappába írt tartalom másolása:

Fájl Kötelező Cél
user_configuration.json Igen Lemez, hosztnév, időzóna, billentyűzet
user_credentials.json Igen Felhasználónév és jelszó-hash
user_full_name.txt Nem Git teljes név
user_email_address.txt Nem Git e-mail
user_encrypt_installation.txt Nem true, amikor a konfiguráció egy disk_encryption blokkot hordoz
authorized_keys Nem SSH nyilvános kulcsok, soronként egy
tailscale_authkey Nem Tailscale hitelesítési kulcs a tailnethez való csatlakozáshoz első indításkor

A user_credentials.json jelszó-hashét az openssl passwd -6 "yourpassword" paranccsal generáld.

A user_credentials.json helyébe egy üres, defer-provisioning nevű fájlt is dobhatsz. Ez ugyanazt a másik tulajdonosnak való előkészítő telepítést futtatja, amelyet interaktívan is kiválthatsz: a gép személyes adatok nélkül települ, és aki először indítja el, az választja ki a billentyűzetét és hozza létre a felhasználóját. Ez az imaging-állomások módja, ahol a meghajtónak egyáltalán nem szabad senki hitelesítőadatait hordoznia.

SSH-hozzáférés

Amikor az authorized_keys jelen van, a telepítés beállítja a kulcsokat a felhasználó ~/.ssh/authorized_keys fájljaként, engedélyezi az sshd szolgáltatást, és megnyitja hozzá a tűzfalat. (Egy stock OmarOS-telepítés az openssh-val érkezik, a szolgáltatás letiltva és a port lezárva, így egy felügyelet nélküli gép egyébként elérhetetlen lenne.) A telepítés csak hozzáadja a kulcsaidat — nem lazít az SSH-démon semmilyen más hitelesítési beállításán.

Amikor a tailscale_authkey jelen van, a gép ehelyett első indításkor csatlakozik a tailnetedhez: a Tailscale az ISO mellékelt csomagjaiból települ, a tűzfal engedélyezi a tailnet-interfészt, és egy háttérfeladat futtatja a csatlakozást, amint a gépnek tényleg van hálózata, újrapróbálkozva, amíg sikerül. Használj újrafelhasználható, előengedélyezett kulcsot, hogy egy meghajtóimage sok gépet szolgálhasson ki.

A cidata meghajtó építése

Minden fájlrendszer működik a helyes címkével. Egy apró ISO a könnyű mód:

mkdir cidata
cp user_configuration.json user_credentials.json authorized_keys cidata/
genisoimage -output cidata.iso -volid cidata -joliet -rock cidata/

Ezután csatold a VM-hez az OmarOS ISO mellé. Íme egy teljes Proxmox-példa:

qm create 101 --name my-omaros \
  --bios ovmf --machine q35 --cpu host --cores 4 --memory 8192 \
  --ostype l26 --scsihw virtio-scsi-single \
  --efidisk0 local-lvm:0,efitype=4m,pre-enrolled-keys=0 \
  --scsi0 local-lvm:40,discard=on,iothread=1 \
  --net0 virtio,bridge=vmbr0 --vga virtio --serial0 socket \
  --ide2 local:iso/omaros.iso,media=cdrom \
  --ide3 local:iso/cidata.iso,media=cdrom \
  --boot order='scsi0;ide2'

qm start 101

Az indítási sorrend szándékosan a lemezt sorolja először: az üres lemez az első indításkor átadja a helyét az ISO-nak, és a telepített rendszer attól kezdve mindig lemezről indul.

Két megjegyzés

A titkosított felügyelet nélküli telepítések nem teljesen felügyelet nélküliek — valakinek továbbra is be kell írnia a LUKS-jelmondatot az első indításkor. És a user_configuration.json fájlban lévő disk_encryption blokk ezt a jelmondatot egyszerű szövegben hordozza, úgyhogy egy titkosított telepítésből épített cidata meghajtót kezeld annak a titoknak, ami.