การติดตั้งแบบไม่มีผู้ดูแล¶
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 ที่สร้างจากการติดตั้งแบบเข้ารหัสเป็นความลับที่มันเป็น