Uovervåkede installasjoner¶
OmarOS ISO-en kan installere seg selv uten noen ved tastaturet. Hvis installasjonsprogrammet finner en andre stasjon merket cidata som bærer konfigurasjonsfilene sine, kopierer det dem av, hopper over oppsettsveiviseren helt og starter på nytt inn i det ferdige systemet på egen hånd. Ingen spesiell ISO-bygg, ingen ekstra oppstartsmenyoppføring — uten en slik stasjon tilkoblet endres ingenting, og du får den vanlige veiviseren.
Dette gjør OmarOS flott som et basisavbilde for engangs utviklingsmiljøer: opprett en VM i Proxmox eller med Packer, start den opp, gå bort, SSH inn. cidata er cloud-init NoCloud-etiketten, så alle vanlige virtualiseringsverktøy vet allerede hvordan de skal koble til en slik stasjon.
Konfigurasjonsfilene¶
Filene er nøyaktig det installasjonsprogrammets egen veiviser skriver, så den enkleste måten å få et startsett på er å kjøre én interaktiv installasjon (i en VM, for eksempel) og kopiere det den skrev inn i /root:
| Fil | Påkrevd | Formål |
|---|---|---|
user_configuration.json |
Ja | Disk, vertsnavn, tidssone, tastatur |
user_credentials.json |
Ja | Brukernavn og passordhash |
user_full_name.txt |
Nei | Git fullt navn |
user_email_address.txt |
Nei | Git-e-post |
user_encrypt_installation.txt |
Nei | true når konfigurasjonen bærer en disk_encryption-blokk |
authorized_keys |
Nei | SSH-offentlige nøkler, én per linje |
tailscale_authkey |
Nei | Tailscale-autentiseringsnøkkel for å bli med i tailnet-et ditt ved første oppstart |
Generer passordhashen for user_credentials.json med openssl passwd -6 "yourpassword".
Du kan også slippe inn en tom fil kalt defer-provisioning i stedet for user_credentials.json. Det kjører den samme klargjør-for-en-annen-eier-installasjonen du kan utløse interaktivt: maskinen installeres uten personlige opplysninger, og den som starter den først, velger tastaturet sitt og oppretter brukeren sin. Det er modusen for avbildningsrigger, der stasjonen ikke skal bære noens legitimasjon i det hele tatt.
SSH-tilgang¶
Når authorized_keys er til stede, setter installasjonen nøklene opp som brukerens ~/.ssh/authorized_keys, aktiverer sshd og åpner brannmuren for den. (En standard OmarOS-installasjon leverer openssh med tjenesten deaktivert og porten lukket, så en uovervåket maskin ellers ville vært utilgjengelig.) Installasjonen legger bare til nøklene dine — den løsner ikke noen av SSH-daemonens andre autentiseringsinnstillinger.
Når tailscale_authkey er til stede, blir maskinen i stedet med i tailnet-et ditt ved første oppstart: Tailscale installeres fra ISO-ens medfølgende pakker, brannmuren tillater tailnet-grensesnittet, og en bakgrunnsjobb kjører tilmeldingen så snart maskinen faktisk har nettverk, og prøver på nytt til den lykkes. Bruk en gjenbrukbar, forhåndsgodkjent nøkkel slik at ett stasjonsavbilde kan betjene mange maskiner.
Bygge cidata-stasjonen¶
Ethvert filsystem med riktig etikett fungerer. En bitteliten ISO er den enkle måten:
mkdir cidata
cp user_configuration.json user_credentials.json authorized_keys cidata/
genisoimage -output cidata.iso -volid cidata -joliet -rock cidata/
Koble den deretter til VM-en ved siden av OmarOS ISO-en. Her er et fullt Proxmox-eksempel:
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
Oppstartsrekkefølgen lister disken først med vilje: den tomme disken faller gjennom til ISO-en ved første oppstart, og det installerte systemet starter fra disk for alltid etterpå.
To forbehold¶
Krypterte uovervåkede installasjoner er ikke fullt uovervåkede — noen må fortsatt skrive LUKS-passfrasen ved første oppstart. Og disk_encryption-blokken i user_configuration.json bærer den passfrasen i klartekst, så behandle en cidata-stasjon bygget fra en kryptert installasjon som den hemmeligheten den er.