התקנות ללא השגחה¶
קובץ ISO של OmarOS יכול להתקין את עצמו בלי אף אחד ליד המקלדת. אם המתקין מוצא כונן שני עם התווית cidata הנושא את קובצי התצורה שלו, הוא מעתיק אותם, מדלג על אשף ההגדרה לחלוטין, ומאתחל מחדש למערכת המוגמרת בעצמו. אין בניית ISO מיוחדת, אין ערך תפריט אתחול נוסף — כשאין כונן כזה מחובר, שום דבר לא משתנה ואתם מקבלים את האשף הרגיל.
זה הופך את OmarOS למעולה כתמונת בסיס עבור סביבות פיתוח חד-פעמיות: צרו VM ב-Proxmox או עם Packer, אתחלו אותו, לכו, התחברו ב-SSH. cidata היא התווית NoCloud של cloud-init, כך שכל כלי הוירטואליזציה הנפוצים כבר יודעים איך לחבר כונן כזה.
קובצי התצורה¶
הקבצים הם בדיוק מה שאשף המתקין עצמו כותב, כך שהדרך הקלה ביותר להשיג סט התחלתי היא להריץ התקנה אינטראקטיבית אחת (ב-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 עם השירות מושבת והיציאה סגורה, כך שמכונה ללא השגחה אחרת לא תהיה נגישה.) ההתקנה מוסיפה רק את המפתחות שלכם — היא אינה משחררת אף אחת מהגדרות האימות האחרות של דימון 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 שנבנה מהתקנה מוצפנת כסוד שהוא.