Однажды пробовал Rapidxen.
Они предоставили веб-страницу терминала ajax, которая отображает tty0 на веб-странице, и вы можете ввести команду на этой веб-странице. Он взаимодействует с domU способом ajax, веб-страница каждые несколько секунд отправляет запрос POST на URL-адрес, заканчивающийся на "ajaxConsoleProxy", что немного похоже на "KVM over IP"
Есть ли проект с открытым исходным кодом, который может делать то же самое?
ОБНОВЛЕНИЕ: я пробовал AjaxTerm, но его нужно запускать на каждом domU. Есть ли лучшее решение? Могу я просто установить какую-нибудь программу на dom0, а затем использовать ее для подключения к domU?
ОБНОВЛЕНИЕ СНОВА: Я понял сам. Прочтите ответ ниже.
Ответ от себя.
Я особо не искал. Уже были люди, задававшие этот вопрос.
Вот ссылка на них:
https://stackoverflow.com/questions/1469917/build-a-web-console-for-xen-domu-instances
Доступ к консоли Xen из Интернета
И глубокое изучение кода RapidXen дает мне следующее: https://manage.systeminplace.net/assets/ajaxconsole.js
Итак, мне нужно выяснить, как запустить ajaxterm
в dom0 затем подключитесь к domU.
После простого теста я нашел неприятное решение ./ajaxterm.py -c "xm con 1"
Если вам нужно подключиться к любому domU на этом dom0, вам, вероятно, потребуется написать ncurse
программа, которая делает xm con
в фоновом режиме, затем запустите ajaxterm
с этой программой ncurse, поэтому вы можете выберите между разными серверами domU при доступе ajaxterm
ОБНОВИТЬ:
Кроме того, вам нужно избегать подключения к одному и тому же domU из ajaxterm
или получите что-то непредсказуемое. Это можно сделать, добавив простой механизм блокировки в вашу программу ncurse.
способ, которым это работает, заключается в том, что каждый dom0 имеет службу управления, которая предоставляет вызовы API peek и poke на консольном устройстве, сервлет ajaxConsoleProxy запускается на manage.systeminplace.net и преобразует запросы, подобные ajaxterm, в соответствующие вызовы peek и poke, которые могут обрабатываться службой управления.
Если вы хотите, я могу отправить вам код, но он, вероятно, не принесет вам много пользы, потому что он очень сильно привязан к нашему дизайну.
я думал разместить это на нашем битбакете, так как это в основном вспомогательный характер. Я считаю, что у openstack тоже есть похожая функция.
служба управления также обрабатывает все другие запросы, такие как завершение работы, запуск виртуальной машины с другим профилем ядра и повторное создание образа.