我试过一次rapidxen。
他们提供了一个基于web的ajaxterminal网页,在网页上显示tty0 ,你可以在那个网页上input命令。 它以ajax方式与domU交互,网页每隔几秒发送POST请求到一个以“ajaxConsoleProxy”结尾的URL,有点像“KVM over IP”
有什么开源项目可以做同样的事情吗?
更新:我尝试了AjaxTerm,但它需要在每个domU上运行。 有没有更好的解决scheme? 我可以在dom0上安装一些程序,然后用它连接到domU吗?
再次更新:我想出了自己。 请阅读下面的答案。
自己回答。
我没有太多的search。 有人问这个问题了。
这里有一些链接:
https://stackoverflow.com/questions/1469917/build-a-web-console-for-xen-domu-instances
通过Web访问Xen控制台
深入RapidXen的代码给了我: https ://manage.systeminplace.net/assets/ajaxconsole.js
所以我需要弄清楚如何在dom0中运行ajaxterm ,然后连接到domU。
经过简单的testing,我发现一个讨厌的解决scheme./ajaxterm.py -c "xm con 1"
如果你需要连接到这个dom0上的任何domU,你可能需要编写一个在后台执行xm con的ncurse程序,然后用这个ncurse程序启动ajaxterm ,这样当你访问一个ajaxterm时,你可以select不同的domU服务器
更新:
而且,你需要避免从ajaxterm连接到同一个domU,否则你会得到一些不可预知的东西。 这可以通过在你的ncurse程序中添加一个简单的locking机制来完成。
您可能正在寻找Ajaxterm , Anyterm或类似的?
它的工作方式是每个dom0都有一个pipe理服务,在控制台设备上暴露窥视和捅API调用,ajaxConsoleProxy servlet在manage.systeminplace.net上运行,并将类似于jaxterm的请求转换为适当的窥视和戳调用由pipe理服务处理。
如果你愿意的话,我可以把你的代码发给你,但它可能不会对你有太大的好处,因为它与我们的devise非常相关。
我正在考虑把它发布在我们的bitbucket上,因为它主要是辅助性的。 我相信OpenStack也有类似的function。
pipe理服务还处理所有其他请求,如closures,使用不同的内核configuration文件启动VM并重新映像。