Перейти до змісту

Автоматичні встановлення

ISO OmarOS може встановити себе сам, коли нікого немає за клавіатурою. Якщо встановлювач знаходить другий диск з міткою cidata, який містить його файли конфігурації, він копіює їх, повністю пропускає майстер налаштування й самостійно перезавантажується в готову систему. Не потрібна спеціальна збірка ISO, не потрібен додатковий пункт меню завантаження — без такого диска нічого не змінюється, і ви отримуєте звичайний майстер.

Це робить OmarOS чудовим базовим образом для одноразових середовищ розробки: створіть віртуальну машину в Proxmox або за допомогою Packer, завантажте її, відійдіть, зайдіть через SSH. cidata — це мітка NoCloud від cloud-init, тож усі поширені інструменти віртуалізації вже вміють підключати такий диск.

Файли конфігурації

Файли — це саме те, що пише власний майстер встановлювача, тож найпростіший спосіб отримати стартовий набір — виконати одне інтерактивне встановлення (у віртуальній машині, скажімо) та скопіювати те, що воно записало в /root:

Файл Обов'язковий Призначення
user_configuration.json Так Диск, ім'я хоста, часовий пояс, клавіатура
user_credentials.json Так Ім'я користувача та хеш пароля
user_full_name.txt Ні Повне ім'я для Git
user_email_address.txt Ні Email для Git
user_encrypt_installation.txt Ні true, коли конфігурація містить блок disk_encryption
authorized_keys Ні Публічні ключі SSH, по одному на рядок
tailscale_authkey Ні Ключ автентифікації Tailscale для приєднання до вашого tailnet під час першого завантаження

Створіть хеш пароля для user_credentials.json за допомогою openssl passwd -6 "yourpassword".

Ви також можете замість user_credentials.json покласти порожній файл під назвою defer-provisioning. Це запускає те саме встановлення «підготувати для іншого власника», яке ви можете викликати інтерактивно: машина встановлюється без особистих даних, а той, хто завантажить її першим, вибирає свою клавіатуру та створює свого користувача. Це режим для стендів створення образів, де диск взагалі не повинен містити нічиїх облікових даних.

Доступ через 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. Ось повний приклад для 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, побудованого із зашифрованого встановлення, як до секрету, яким він є.