Xen DomU 的基于 Web 的 Ajax 控制台?

Xen DomU 的基于 Web 的 Ajax 控制台?

我尝试过一次 rapidxen。

他们提供了一个基于 Web 的 Ajax 终端网页,其中显示终端在网页上,您可以在该网页上输入命令。它以 ajax 方式与 domU 交互,网页每隔几秒向以“ajaxConsoleProxy”结尾的 URL 发送 POST 请求,有点像“KVM over IP”

有没有任何开源项目可以做同样的事情?

更新:我尝试了 AjaxTerm,但它需要在每个 domU 上运行。有没有更好的解决方案?我可以在 dom0 上安装一些程序,然后使用它连接到 domU 吗?

再次更新:我自己找到了答案。请阅读下面的答案。

答案1

我自己来回答。

我没搜索太多。已经有人问过这个问题了。

以下是一些链接:
https://stackoverflow.com/questions/1469917/build-a-web-console-for-xen-domu-instances
从 Web 访问 Xen 控制台

深入研究 RapidXen 的代码后我发现:https://manage.systeminplace.net/assets/ajaxconsole.js

所以我需要弄清楚如何ajaxterm在 dom0 中运行然后连接到 domU。

经过简单的测试,我发现了一个糟糕的解决方案./ajaxterm.py -c "xm con 1"

如果你需要连接到这个 dom0 上的任何 domU,你可能需要编写一个在后台ncurse执行的程序,然后从这个 ncurse 程序启动,这样你就可以xm conajaxterm选择在不同的 domU 服务器之间访问时ajaxterm

更新:
此外,您需要避免连接到同一个 domU,ajaxterm否则您将得到一些不可预测的结果。这可以通过在您的 ncurse 程序中添加一个简单的锁定机制来实现。

答案2

你可能正在寻找Ajax终端任何期限或者类似的东西?

答案3

它的工作方式是每个 dom0 都有一个管理服务,它在控制台设备上公开 peek 和 poke API 调用,ajaxConsoleProxy servlet 在 manage.systeminplace.net 上运行,并将类似 ajaxterm 的请求转换为可由管理服务处理的适当的 peek 和 poke 调用。

如果你愿意,我可以把代码发给你,但它可能不会给你带来太大的帮助,因为它与我们的设计密切相关。

我正在考虑将它发布在我们的 bitbucket 上,因为它主要是辅助性质的。我相信 openstack 也有类似的功能。

管理服务还处理所有其他请求,例如关闭、使用不同的内核配置文件启动虚拟机以及重新映像。

相关内容