? 本文主要介紹如何實現(xiàn)把遠程訪問物理主機控制臺的功能集成到Web應用系統(tǒng)。
一.概念介紹
? ?1. IPMI(Intelligent Platform Management Interface)即智能平臺管理接口是使硬件管理具備“智能化”的新一代通用接口標準。Ipmi 是一種規(guī)范的標準,其中最重要的物理部件就是BMC(Baseboard Management Controller),一種嵌入式管理微控制器,它相當于整個平臺管理的“大腦”,通過它 ipmi 可以遠程開關機。目前惠普、戴爾,聯(lián)想、 NEC 等大多數(shù)廠商的主板上具有 BMC 等嵌入式的管理微控制器的服務器都支持 IPMI 。實現(xiàn)對物理服務器遠程控制,需要服務器主板支持有帶外管理網(wǎng)口(遠程控制卡),帶外IP可以PING通,用戶名密碼設置正確。
? ? 2.shellinabox一款自由開源的基于Web的Ajax的終端模擬器。它使用AJAX技術,通過Web瀏覽器提供了類似原生的 Shell, 允許用戶通過指定的端口訪問linux服務器的ssh shell。
? ? 3.IPMITOOL 是一種可用在 linux 系統(tǒng)下的命令行方式的 ipmi 平臺管理工具, 通過它可以實現(xiàn)獲取傳感器的信息、顯示系統(tǒng)日志內容、網(wǎng)絡遠程開關機等功能。
? ? 4.SOL (SerialOver LAN ),通過 IPMI 會話重定向本地串行接口,允許遠程訪問 LINUX 串行控制臺。
二.整體方案? ?
? ? ?以下為整體搭建方案圖,前提物理主機要支持IPMI技術,帶外管理網(wǎng)口可用,帶外IP可以PING通,用戶名密碼正確。只要物理主機支持IPMI標準協(xié)議都可以適用該方案。下面將以DELL為例子介紹如何搭建過程。原理主要以下兩點。
1.調用IPMITOOL命令實現(xiàn)終端重定向,主要涉及以下命令 ipmitool -I lanplus -H -U -P -C 3 sol activate
2.利用shellinabox的Ajax的shell終端模擬器,及shellinabox本身注冊服務功能,達到調用IPMITOOL時自動顯示到物理主機控制臺。

三.配置物理主機IPMI,以DELL為例
1.按“F2”進入BIOS啟動 - 在初始屏幕上,可以看到在BIOS和BMC版本,接下來,你可以遍歷服務器“選項卡- ,會看到? “設置BMC LAN配置”


2.配置IPMI用戶名密碼 一旦設置的IP地址-通過Web用戶界面,可以得到更多的信息。BMC Web的用戶界面相對簡單,可以驗證是否配置正常。在瀏覽器輸入https://ip 地址ip為遠程ip地址。如果能夠登陸,則意味配置成功。

3. 配置遠程終端重定向, 設置重定向到串口com2

4. 配置grub啟動參數(shù),進入物理主機操作系統(tǒng).
?執(zhí)行命令vi/boot/grub/grub.conf 修改grub.conf配置文件增加這行記錄console=ttyS1,9600n8


console=tty0?代表顯示器輸出
console=ttyS0?代表定向到串口1,如果是ttyS1代表定向到串口2
57600則為串口通信采用的波特率,波特率和bios設置的一樣
5. 修改/etc/inittab文件增加以下行

?6.修改/etc/securetty 增加一行:ttyS1

7.重啟物理主機reboot
四.搭建shellinabox服務器
1. 在任何一臺物理主機上創(chuàng)建一臺linux虛擬機,這里以centos為例,ip:192.168.217.155。在centos虛擬機上安裝shellinabox,可以使用yum安裝或者源碼編譯安裝,使用yum安裝需要先打上epel的repo且可以通外網(wǎng)。
2.在cenos上執(zhí)行安裝shellinabox命令

3.安裝成功后,執(zhí)行以下命令關閉防火墻
service iptables stop
chkconfig iptables off
4.執(zhí)行命令啟用shellinabox服務

5.默認情況下,shellinaboxd偵聽本地主機上的TCP端口4200,在瀏覽器輸入虛擬機ip:4200,則可以通過瀏覽器訪問到虛擬機centos的控制臺。

五.安裝ipmitool工具
? ? 在剛才創(chuàng)建的sellinabox服務器上安裝impitool工具,LINUX 一般系統(tǒng)自帶IPMI TOOl,用于計算帶外管理(運行在硬件平臺上,需要有BMC支持),但有些版本是默認沒安裝IPMI,所以沒安裝的話要用戶手動安裝。以下簡單介紹centos rmp包安裝,針對CentOs操作系統(tǒng),編譯了一個rmp包,安裝步驟如下。
1.把rmp包放到centos操作系統(tǒng)中,解壓壓縮包到某個目錄下ipmitool
2.請?zhí)摂M機的DVD掛載上虛擬機本身操作系統(tǒng)的ISO
3.執(zhí)行以下命令編譯ipmitool.repo文件
4.安裝成功最后顯示結果

5.安裝成功需要啟動相應的驅動模塊,可以通下以下兩種命令啟動驅動
/etc/init.d/ipmi start
或者通過以下命令:
modprobe ipmi_msghandler
modprobe ipmi_devintf
modprobe ipmi_si
modprobe ipmi_poweroff
modprobe ipmi_watchdog
6.通過cat /proc/devices | grep ipmidev獲得設備號,如得到的設備號是248,用mknod -m 600 /dev/ipmi0 c 248 0 建立文件索引點
7.驗證是否成功,如提示有以下命令則安裝成功

六.shellinabox與ipmitool結合
? ? 通過shellinabox調用ipmitool命令以達到重定向到物理主機控制臺。shellinabox提供參數(shù)-s這個參數(shù)的意思相當于給這個服務注冊應用地址。-s參數(shù)的詳細說明:

舉例說明:

? ?這表示當前這個shellinabox服務有兩個調用地址,一個是根目錄/,另一個是/date。調用/時,返回的是登錄頁面;調用/date時,返回的是在shell里執(zhí)行date的結果。
? ? 這里我們將注冊一個服務調用IPMITOOl命令, 修改shellinabox配置文件配置文件默認在/etc/sysconfig/shellinaboxd,? 在配置文件增加以下一行記錄/ipmitool_console:nobody:nogroup:/:\"ipmitool -I lanplus -UAdministrator -H 10.0.1.100? -P V8W5HHBR-C 3? sol activate usesolkeepalive

? ? 修改成功后保存并執(zhí)行命令service shellinaboxd restart重啟。在瀏覽器輸入以下https://192.168.217.155:4222/ipmitool/get_console 則瀏覽器頁面顯示自動跳轉到物理主機控制臺上。如以下圖所示

? ? ?至此我們就可以通過開源組件shellinabox調用ipmitool工具進行終端重定向,以實現(xiàn)遠程訪問物理主機控制臺的功能。通過該方法,可以把遠程訪問物理主機控制臺的功能集成到相應的Web應用系統(tǒng)。
原創(chuàng)文章,寫作不易,轉載請獲得授權并標明出處,歡迎留言交流