鉴于近期咨询小米如何在web端实现服务器远程管理卡console的朋友比较多。简单的写出个大概避免重复多次的介绍。
首先,你需要有基本的linux、控制卡知识
我们用到的主要工具有:ajaxterm、ipmitool、代理服务器
ajaxterm是一个web端的终端+服务器端相应的程序,简单的将他启动,默认可以将服务器的ssh连接控制台打到web的ajax控件上,这样可以满足的是用户通过web连接ssh的需求。如下图:
但是这个默认的配置只打开了一个监听端口对本机(127.0.0.1开放),这时候你就需要 配置代理服务器。
以apache为例
Listen 9002
ProxyRequests off
Allow from all
ProxyPassReverse / http://localhost:8022/
这样你就可以通过远程访问来获取部署了ajaxterm和代理服务器设备的的ssh terminal。
然后,我们想将服务器的控制卡console输出打到这个ajaxterm上,该怎么做 ?
ajaxterm通过命令行启动的时候可以指定通过web访问时执行的脚本,如下
#python ajaxterm.py -c /home/shell/ipmiconsole.sh -d
我们指定运行了ipmiconsole.sh脚本,这个脚本很简单内容如下
ipmitool -U USERNAME -I lanplus -H iLOip -P Password -e ^ sol activate
这样每次你通过web访问ajaxterm的时候,ajaxterm就会运行这个脚本并将运行内容通过ajax等技术打到web页面上。当你同时打开多个web界面时,ajaxterm也会同时会多次运行这个脚本
如果你想通过多次打开web端来获得不同的服务器的控制卡console,你可以想办法在点击打开ajaxterm的同事更改ipmiconsole.sh中的iLOip
看看我们最终实现的效果
13 Comments
学习了。
如果程序执行中需要执行ctrl-c,是否可以呢
shellinabox,gateone试试
能交个朋友么
我们是个团队,不是一个人:)
审查元素里看第二个截图,显示是QQ图片,这是用QQ截的图吧,哈哈
嘿嘿,已经做出来了~
咱们的方法不太一样,我是用ipmicontrol做的,但是底层的东西是一样的哈~
xiaorui.cc
安安,我成功地利用了ajaxTerm來實現這個作法,但我想嘗試使用ShellInABox來實現時卻發現無從入手……請問有沒有相關的作法來個參考嗎
ipmitool -U root -I lanplus -H 192.168.0.200 -P calvin -e ^ sol activate
Error: Unable to establish IPMI v2 / RMCP+ session
Error: No response activating SOL payload
我的是Dell的机器,始终显示这个,想请教一下,是怎么回事
请问系统安装的进度是怎样检测到的呢?谢谢
请能问一下sol的session问题你们怎么解决的么!
现在我们实现后发现,打开一个sol的连接后,关闭web端口的窗口后,同时直接KILL掉连接此SOL的进程,但是被连接的服务器端的session还是会保持一段时间(DELL的2分钟左右,2分钟内不能再次连接到SOL),下次再连接的时候有可能连接不上