ข้ามไปที่เนื้อหา

การติดตั้งแบบไม่มีผู้ดูแล

ISO ของ OmarOS สามารถติดตั้งตัวเองได้โดยไม่มีใครอยู่ที่คีย์บอร์ด ถ้าตัวติดตั้งพบไดรฟ์ที่สองที่ติดป้าย cidata ซึ่งบรรจุไฟล์การกำหนดค่าของมัน มันจะคัดลอกไฟล์เหล่านั้นออกมา ข้ามตัวช่วยตั้งค่าไปทั้งหมด และรีบูตเข้าสู่ระบบที่เสร็จแล้วด้วยตัวเอง ไม่ต้องสร้าง ISO พิเศษ ไม่ต้องมีรายการเมนูบูตพิเศษ — ถ้าไม่มีไดรฟ์เช่นนั้นติดอยู่ ไม่มีอะไรเปลี่ยนและคุณได้ตัวช่วยปกติ

สิ่งนี้ทำให้ OmarOS ยอดเยี่ยมในฐานะอิมเมจฐานสำหรับสภาพแวดล้อมพัฒนาที่ใช้แล้วทิ้ง: สร้าง VM ใน Proxmox หรือด้วย Packer บูตมัน เดินจากไป SSH เข้ามา cidata คือป้าย NoCloud ของ cloud-init เครื่องมือ virtualization ทั่วไปทั้งหมดจึงรู้วิธีแนบไดรฟ์เช่นนั้นอยู่แล้ว

ไฟล์การกำหนดค่า

ไฟล์เหล่านี้คือสิ่งที่ตัวช่วยของตัวติดตั้งเองเขียนพอดี วิธีง่ายที่สุดในการได้ชุดเริ่มต้นจึงคือรันการติดตั้งแบบโต้ตอบหนึ่งครั้ง (ใน VM เป็นต้น) และคัดลอกสิ่งที่มันเขียนไว้ใน /root:

ไฟล์ จำเป็น วัตถุประสงค์
user_configuration.json ใช่ ดิสก์ ชื่อโฮสต์ เขตเวลา คีย์บอร์ด
user_credentials.json ใช่ ชื่อผู้ใช้และแฮชรหัสผ่าน
user_full_name.txt ไม่ ชื่อเต็ม Git
user_email_address.txt ไม่ อีเมล Git
user_encrypt_installation.txt ไม่ true เมื่อการกำหนดค่าบรรจุบล็อก disk_encryption
authorized_keys ไม่ คีย์สาธารณะ SSH หนึ่งบรรทัดต่อหนึ่งคีย์
tailscale_authkey ไม่ คีย์ยืนยัน Tailscale สำหรับเข้าร่วม tailnet ของคุณตอนบูตครั้งแรก

สร้างแฮชรหัสผ่านสำหรับ user_credentials.json ด้วย openssl passwd -6 "yourpassword".

คุณยังวางไฟล์เปล่าชื่อ defer-provisioning แทนที่ user_credentials.json ได้ นั่นรัน การติดตั้งแบบเตรียมสำหรับเจ้าของคนอื่น แบบเดียวกับที่คุณเรียกแบบโต้ตอบได้: เครื่องติดตั้งโดยไม่มีรายละเอียดส่วนตัว และใครก็ตามที่บูตมันครั้งแรกจะเลือกคีย์บอร์ดและสร้างผู้ใช้ของพวกเขา นั่นคือโหมดสำหรับเครื่องทำอิมเมจ ที่ซึ่งไดรฟ์ไม่ควรบรรจุข้อมูลประจำตัวของใครเลย

การเข้าถึง SSH

เมื่อมี authorized_keys อยู่ การติดตั้งจะตั้งค่าคีย์เป็น ~/.ssh/authorized_keys ของผู้ใช้ เปิดใช้งาน sshd และเปิดไฟร์วอลล์ให้มัน (การติดตั้ง OmarOS มาตรฐานมาพร้อม openssh ที่บริการถูกปิดใช้งานและพอร์ตถูกปิด เครื่องที่ไม่มีผู้ดูแลจึงจะเข้าถึงไม่ได้ในกรณีอื่น) การติดตั้งเพียงเพิ่มคีย์ของคุณ — มันไม่ผ่อนคลายการตั้งค่าการยืนยันตัวตนอื่น ๆ ของ daemon SSH

เมื่อมี tailscale_authkey อยู่ เครื่องจะเข้าร่วม tailnet ของคุณตอนบูตครั้งแรกแทน: Tailscale ถูกติดตั้งจากแพ็กเกจที่รวมมาใน ISO ไฟร์วอลล์อนุญาตอินเทอร์เฟซ tailnet และงานเบื้องหลังรันการเข้าร่วมทันทีที่เครื่องมีเครือข่ายจริง ๆ โดยลองใหม่จนกว่าจะสำเร็จ ใช้คีย์ที่ใช้ซ้ำได้และอนุญาตล่วงหน้าเพื่อให้อิมเมจไดรฟ์เดียวบริการได้หลายเครื่อง

การสร้างไดรฟ์ cidata

ระบบไฟล์ใด ๆ ที่มีป้ายถูกต้องใช้ได้ ISO ขนาดเล็กจิ๋วคือวิธีง่าย ๆ:

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

จากนั้นแนบมันไปยัง VM เคียงข้าง ISO ของ OmarOS นี่คือตัวอย่าง Proxmox เต็มรูปแบบ:

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

ลำดับบูตระบุดิสก์ก่อนโดยตั้งใจ: ดิสก์เปล่าจะทะลุไปยัง ISO ในการบูตครั้งแรก และระบบที่ติดตั้งแล้วจะบูตจากดิสก์ตลอดไปหลังจากนั้น

ข้อควรระวังสองข้อ

การติดตั้งแบบเข้ารหัสที่ไม่มีผู้ดูแลไม่ได้ไม่มีผู้ดูแลอย่างสมบูรณ์ — ยังต้องมีคนพิมพ์รหัสผ่าน LUKS ตอนบูตครั้งแรก และบล็อก disk_encryption ใน user_configuration.json บรรจุรหัสผ่านนั้นเป็นข้อความธรรมดา ดังนั้นให้ปฏิบัติต่อไดรฟ์ cidata ที่สร้างจากการติดตั้งแบบเข้ารหัสเป็นความลับที่มันเป็น