|
| 1 | +# Запуск Realm Exordos с virt-manager |
| 2 | + |
| 3 | +> **Примечание о консольном доступе:** Артефакт production realm-node |
| 4 | +> предназначен для настройки родительским realm и **не** предоставляет |
| 5 | +> консольного доступа. Для работы автономного стенда разработчика |
| 6 | +> используйте образ exordos-realm-dev.raw.zst. |
| 7 | +
|
| 8 | +## Создание и запуск ВМ |
| 9 | + |
| 10 | +Эти команды загружают dev-образ, распаковывают его и создают диск для |
| 11 | +импорта. Выполняйте их на KVM-хосте с Ubuntu/Debian: |
| 12 | + |
| 13 | +```bash |
| 14 | +sudo apt update |
| 15 | +sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients virt-manager zstd |
| 16 | +sudo usermod -aG libvirt,kvm "$USER" |
| 17 | +# Выйдите из системы и зайдите снова, чтобы применить новую группу. |
| 18 | + |
| 19 | +cd /var/lib/libvirt/images/ |
| 20 | +sudo wget -O exordos-realm-dev.raw.zst \ |
| 21 | + https://repo.exordos.com/exordos-elements/exordos-realm/latest/images/exordos-realm-dev.raw.zst |
| 22 | +sudo zstd --decompress --keep exordos-realm-dev.raw.zst |
| 23 | +sudo chown libvirt-qemu:kvm exordos-realm-dev.raw |
| 24 | +sudo qemu-img info exordos-realm-dev.raw |
| 25 | +``` |
| 26 | + |
| 27 | +Хост должен предоставлять вложенный KVM (nested KVM) гостевой системе, |
| 28 | +поскольку realm node запускает вложенную core VM. Проверьте соответствующее |
| 29 | +значение перед созданием ВМ: |
| 30 | + |
| 31 | +```bash |
| 32 | +# Хосты Intel |
| 33 | +cat /sys/module/kvm_intel/parameters/nested |
| 34 | +# Хосты AMD |
| 35 | +cat /sys/module/kvm_amd/parameters/nested |
| 36 | +``` |
| 37 | + |
| 38 | +Значение должно быть `Y` (или `1`). Если это не так, включите вложенную |
| 39 | +виртуализацию на хосте прежде чем продолжать. |
| 40 | + |
| 41 | +Запустите virt-manager и выберите системное подключение libvirt: |
| 42 | + |
| 43 | +```bash |
| 44 | +virt-manager --connect qemu:///system |
| 45 | +``` |
| 46 | + |
| 47 | +В графическом интерфейсе выберите **Файл → Новая виртуальная машина**, затем |
| 48 | +настройте: |
| 49 | + |
| 50 | +1. Выберите **Импортировать существующий образ диска**. |
| 51 | +2. Укажите `/var/lib/libvirt/images/exordos-realm-dev.raw`; выберите |
| 52 | + подходящий тип ОС Ubuntu (например, Ubuntu 24.04), если virt-manager |
| 53 | + запросит. |
| 54 | +3. Выделите не менее **4 vCPU** и **8192 MiB ОЗУ**; увеличьте ресурсы, если |
| 55 | + этого требует вложенная core-нагрузка. |
| 56 | +4. Оставьте сеть NAT по умолчанию или выберите мостовую сеть, подходящую |
| 57 | + для хоста. |
| 58 | +5. Отметьте **Настроить конфигурацию перед установкой**. В разделе **CPU** |
| 59 | + выберите **Копировать конфигурацию CPU хоста** / host-passthrough, чтобы |
| 60 | + расширения виртуализации KVM были доступны гостю. Убедитесь, что диск |
| 61 | + использует формат `raw` и шину virtio, затем нажмите **Начать установку**. |
| 62 | + |
| 63 | +Полностью командная строка ниже эквивалентна и регистрирует ВМ так, чтобы её |
| 64 | +можно было открыть и управлять ей через virt-manager: |
| 65 | + |
| 66 | +```bash |
| 67 | +virt-install --connect qemu:///system \ |
| 68 | + --name exordos-realm \ |
| 69 | + --memory 8192 \ |
| 70 | + --vcpus 4 \ |
| 71 | + --cpu host-passthrough \ |
| 72 | + --disk path=/var/lib/libvirt/images/exordos-realm-dev.raw,format=raw,bus=virtio \ |
| 73 | + --network network=default,model=virtio \ |
| 74 | + --os-variant ubuntu24.04 \ |
| 75 | + --graphics spice \ |
| 76 | + --video virtio \ |
| 77 | + --import --noautoconsole |
| 78 | + |
| 79 | +# Откройте графическую консоль ВМ в virt-manager. |
| 80 | +virt-manager --connect qemu:///system --show-domain-console exordos-realm |
| 81 | +``` |
| 82 | + |
| 83 | +## Проверка ВМ |
| 84 | + |
| 85 | +После запуска убедитесь, что libvirt сообщает о работе ВМ и что KVM доступен |
| 86 | +внутри realm node: |
| 87 | + |
| 88 | +```bash |
| 89 | +virsh --connect qemu:///system list --all |
| 90 | +virsh --connect qemu:///system dominfo exordos-realm |
| 91 | + |
| 92 | +# Выполните в гостевой консоли (для входа требуется образ DEV_ACCESS). |
| 93 | +kvm-ok |
| 94 | +``` |
| 95 | + |
| 96 | +`virsh` должен показать `exordos-realm` в статусе `running`; `kvm-ok` должен |
| 97 | +сообщить, что ускорение KVM может быть использовано. Для образа DEV_ACCESS |
| 98 | +войдите как `ubuntu:ubuntu`. |
| 99 | +Production-образ будет ожидать `/etc/exordos/realm_spec.json` от своего |
| 100 | +родительского realm. |
| 101 | + |
| 102 | +## Стенд разработчика |
| 103 | + |
| 104 | +Смоделируйте создание стенда, написав `/etc/exordos/realm_spec.json` |
| 105 | +самостоятельно (смотрите контракт в exordos_ecosystem `docs/realm-manager.md`, или вы можете скопировать пример спецификации |
| 106 | +с помощью `cp /etc/exordos/realm_spec.json.example /etc/exordos/realm_spec.json`) — |
| 107 | +модуль первой загрузки распознает его. |
| 108 | + |
| 109 | +Имена ключей намеренно совпадают с ключами `spec.json`, используемыми |
| 110 | +`exordos_core/cmd/bootstrap.py` / `exordos_core/bootstrap/defaults.py` |
| 111 | +(`realm_uuid`, `realm_secret`, `realm_tokens`, `ecosystem_endpoint`, |
| 112 | +`admin_password`, `disable_telemetry`), чтобы скрипт первой загрузки образа мог |
| 113 | +объединить этот файл с его готовым шаблоном спецификации с минимальным сопоставлением. |
| 114 | + |
| 115 | +Далее вы можете просмотреть логи службы bootstrap с помощью `sudo journalctl -u exordos-realm-bootstrap`. |
| 116 | + |
| 117 | +И через несколько секунд вы можете увидеть рабочий стенд, выполнив команду `exordos e e l`. |
0 commit comments