NoOps

Ops make no ops | Ops的目标是没有Ops,嗯!

用ajaxterm实现web页面查看任意服务器远程管理卡console输出

作者: |   4,447 浏览  | 

鉴于近期咨询小米如何在web端实现服务器远程管理卡console的朋友比较多。简单的写出个大概避免重复多次的介绍。
首先,你需要有基本的linux、控制卡知识
我们用到的主要工具有:ajaxterm、ipmitool、代理服务器
ajaxterm是一个web端的终端+服务器端相应的程序,简单的将他启动,默认可以将服务器的ssh连接控制台打到web的ajax控件上,这样可以满足的是用户通过web连接ssh的需求。如下图:

scr

但是这个默认的配置只打开了一个监听端口对本机(127.0.0.1开放),这时候你就需要 配置代理服务器。

以apache为例

Listen 9002

ProxyRequests off

Order allow,deny
Allow from all
ProxyPass / http://localhost:8022/
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
看看我们最终实现的效果

QQ图片20130827111057

13 Comments

  1. lxcong
    2013/08/27 at 12:00 下午

    学习了。

  2. hello
    2013/08/27 at 1:49 下午

    如果程序执行中需要执行ctrl-c,是否可以呢

    • wilbur
      2013/08/27 at 8:21 下午

      shellinabox,gateone试试

      • 2014/04/18 at 6:13 下午

        能交个朋友么

        • wilbur
          2014/04/18 at 6:16 下午

          我们是个团队,不是一个人:)

  3. ailurus
    2013/08/30 at 10:08 上午

    审查元素里看第二个截图,显示是QQ图片,这是用QQ截的图吧,哈哈

  4. 2013/09/05 at 6:10 下午

    嘿嘿,已经做出来了~
    咱们的方法不太一样,我是用ipmicontrol做的,但是底层的东西是一样的哈~

    xiaorui.cc

    • wilbur
      2013/09/05 at 10:26 下午

      :)

  5. Pi
    2013/10/30 at 4:06 下午

    安安,我成功地利用了ajaxTerm來實現這個作法,但我想嘗試使用ShellInABox來實現時卻發現無從入手……請問有沒有相關的作法來個參考嗎

  6. zyp0209
    2014/05/06 at 2:39 下午

    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的机器,始终显示这个,想请教一下,是怎么回事

  7. mxxm
    2014/07/10 at 3:52 下午

    请问系统安装的进度是怎样检测到的呢?谢谢

  8. tangk
    2015/06/30 at 11:17 上午

    请能问一下sol的session问题你们怎么解决的么!

  9. tangk
    2015/06/30 at 11:21 上午

    现在我们实现后发现,打开一个sol的连接后,关闭web端口的窗口后,同时直接KILL掉连接此SOL的进程,但是被连接的服务器端的session还是会保持一段时间(DELL的2分钟左右,2分钟内不能再次连接到SOL),下次再连接的时候有可能连接不上

zero 进行回复 取消回复