نصبهای بدون مراقبت¶
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/
بعد آن را در کنار ISO OmarOS به VM وصل کنید. این یک مثال کامل 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 ساختهشده از یک نصب رمزگذاریشده مثل رازی که هست رفتار کنید.