LINUX.ORG.RU

Релиз nEMU 3.0.0 — интерфейса к QEMU, основанного на псевдографике ncurses

 ,


4

3

Состоялся релиз nEMU версии 3.0.0.

nEMU — это ncurses-интерфейс к QEMU, упрощающий создание, настройку и управление виртуальными машинами.
Код написан на языке C и распространяется под лицензией BSD-2.

Основные изменения:

  • Поддержка -netdev user (hostfwd, smb). Позволяет без каких-либо дополнительных настроек сети предоставить доступ во внешнюю сеть виртуальной машине.
  • Поддержка QMP команд snapshot-{save, load, delete}, появившихся в QEMU-6.0.0. Теперь для работы со снепшотами больше нет необходимости патчить QEMU.
  • Корректное отображение форм ввода и редактирования параметров при изменении размера окна (баге было семь лет, @GrafIn героически пофиксил).
  • API для удаленного управления виртуальными машинами. Теперь nEMU умеет принимать JSON команды через TLS сокет. Описание методов находится в файле remote_api.txt. Также был написан Android клиент. С помощью него в данный момент можно запускать, останавливать и подключаться к виртуальным машинам по протоколу SPICE.

Новые параметры в файле конфигурации, секция [nemu-monitor]:

  • remote_control - включает API.
  • remote_port - порт, на котором слушает TLS сокет, по умолчанию 20509.
  • remote_tls_cert - путь до публичного сертификата.
  • remote_tls_key - путь до закрытого ключа сертификата.
  • remote_salt - соль.
  • remote_hash - контрольная сумма от пароля плюс соль (sha256).

Ебилды, deb, rpm, nix и прочие сборки есть в репозитории.

>>> Подробности

★★★

Проверено: Shaman007 ()

Напомните почему все эти ncurses не считаются хипсторским говном, но каждый второй админ локалхоста течет от них в комментариях? Почему такое не рисуют на SDL, имея все его возможности, но при этом избегая все приколы терминалов?

anonymous ()
Ответ на: комментарий от pascal

Поленился использовать либо оба одновременно, либо вызов мониторных команд через QMP. В результате лени, как я понял, в Вилларибо годами зря патчили QEMU, а все Виллабаджо смотрит на тебя сейчас с удивлением.

t184256 ★★★★★ ()
Ответ на: комментарий от t184256

Ну тут все 3 варианта - костыли:

human-monitor-command - «This command only exists as a stop-gap. Its use is highly discouraged. The semantics of this command are not guaranteed: this means that command names, arguments and responses can change or be removed at ANY time. Applications that rely on long term stability guarantees should NOT use this command.»

Использование QMP одновременно с прямым взаимодействием с qemu-monitor для меня лично выглядит странно, вроде как для машинного взаимодействия и придумали QMP. Тогда уж проще все через qemu-monitor делать.

Мы просто патчили qemu, в итоге все взаимодействие через QMP, вызовов негарантированного API не было. Как только в upstream таки добавили snapshot-{save, load, delete}, было не сложно переехать.

GrafIn ()
Ответ на: комментарий от GrafIn

// было не сложно переехать
ну как не сложно, учитывая что снепшот команды они сделали асинхронными, мне пришлось попотеть)
---
про монитор я вообще не понимаю при чем оно тут ибо nemu позицианируется как X-free приложение)

pascal ★★★ ()
Последнее исправление: pascal (всего исправлений: 1)
Ответ на: комментарий от t184256

Если вы имеете ввиду -monitor redirect to blablabla. То оно не в тему, это для интерактива. Для автоматизации в QEMU есть QMP, который мы и используем, вы точно имеете отношение к разработке ПО?

pascal ★★★ ()
Последнее исправление: pascal (всего исправлений: 3)
Ответ на: комментарий от pascal

т.к. переписать надо все ядро

Если у вас всё завязано на QEMU, то оно того не стоит.

Ну и да, тут понадобится тот, кто шарит в bhyve на достаточном уровне, я даже консультацию не потяну, сомневаюсь что у меня достаточно знаний.

nEMU мне нравится, но применять его негде. ☹

mord0d ★★★★★ ()
Ответ на: комментарий от pascal

Если вы имеете ввиду -monitor redirect to blablabla. То оно не в тему, это для интерактива. Для автоматизации в QEMU есть QMP

Отличное разделение, сам придумал или приставкой human- вдохновился? Ну да, пользователи и без снапшотов посидят, не юзать же стабильное API для доступа к старой как не знаю что функциональности.

вы точно имеете отношение к разработке ПО?

Ты имеешь в виду разработку именно оберток для QEMU? Да не особо. Я там ссылку кидал на одну свою писульку, вот другая, покороче, если ту читать вломак. Там сам решай.

t184256 ★★★★★ ()
Ответ на: комментарий от pascal

Если вы имеете ввиду -monitor redirect to blablabla. То оно не в тему, это для интерактива.

Почему для интерактива? Я запускал qemu, в сокет-файл монитор выводил и скриптами туда писал некоторые команды. Вроде работало. Для интерактива, конечно, тоже можно использовать, но почему бы его не использовать для автоматизации - не очевидно.

Legioner ★★★★★ ()
Ответ на: комментарий от pascal

У себя на локалхосте с NixOS я что угодно могу, и QEMU для какой-то спайсомелочи патчу, но я не мэйнтейнер QEMU, чтобы в Red Hat-based дистрам его всем пользователям патчить.

t184256 ★★★★★ ()
Ответ на: комментарий от crypt

Ну я бы даже проспонсировал реализацию, но… в общем, читай тред, тут всё есть.

по-моему оба через libvirt можно использовать

Ну… В принципе да, но хотелось что-нибудь… человеческое. С одной стороны меня полностью устраивает sysutils/vm-bhyve, но у него совершенно нет API — ходи по ssh и пинай скрипты напрямую. Оно даже json выплёвывать не умеет, чтобы заскриптовать API сбоку.

А сабж умеет, но, оказалось, оно не через libvirt (внезапно!).

mord0d ★★★★★ ()