熱門文章

2014年9月19日 星期五

UPS 的使用及自動關機--VM不斷電批次關機

1.在VM 上自行加入Serial Port 設備來連線UPS,當然ESX
Server 的主機板上是要有這個Serial Port,不然在VM 上加入了也沒有用。因此
目前解決方法是選擇一個VM(OS: CentOS)額外擔任UPS 監視的工作,並且在
VM 上加入一個Serial Port 及安裝UPS 管理程式。
另外因為我們選的是「Use Physical serial port:」會有lock 現象,所以一個實體的
Serial Port 只能對應到一個虛擬的Serial Port,比較慢啟動的VM 是無法connect
實體的Serial Port。
2.UPS 管理程式/設定
  1).準備UPS for linux 管理程式 linux.tar.gz
  2). cd /usr/local/src/
      tar zxvf linux.tar.gz
      cd linux
      ./install
  安裝完成後, 程式的部分會放在 /etc/rups 中
  3). 設定斷電後3分鐘關機
  執行 /etc/rups/rupsc config
  因只有一顆電池,掛一部主機大約10 分鐘就沒電了。保守一點設3 分鐘就好了.
插入[閱讀全文]分隔3. start/stop rups
#/etc/rups/rupsc start
#/etc/rups/rupsc stop
4.利用expect進行自動遠端關機
可利用SSH連線到某主機,產生程序檔script.exp
autoexpect ssh 163.17.XX.XX
修改script.exp,依照實際機器狀況修改
#!/usr/bin/expect -f
set force_conservative 0 ;# set to 1 to force conservative mode even if
;# script wasn't run conservatively originally
if {$force_conservative} {
set send_slow {1 .1}
proc send {ignore arg} {
sleep .1
exp_send -s -- $arg
}
}
set timeout -1
spawn ssh 163.17.xxx.xxx
match_max 100000
expect -exact "Password:"
send -- "root's passwor\r"

expect -exact "sfs# "
send -- "shutdown -p now\r"

expect -exact "sfs# "
send -- "exit\r"

expect eof
---------------------------------------------------

要修改的地方
163.17.xxx.xxx 改為您要登入的電腦IP
"root's password\r" 改為root 密碼。 \r 代表enter
"sfs# " 改為登入主機的名稱
若使用的sell 代號不同也需修改,例如 $
修改好後還要加上可執行的屬性。
測試關機exp 檔能否正確進行關機動作
#expect /root/shutdown-xxxx.exp
5.將所有的shutdown-xxxx.exp 加到 /etc/rups/preshut.bat
/usr/bin/expect /root/shutdown-vm1.exp
/usr/bin/expect /root/shutdown-vm2.exp
/usr/bin/expect /root/shutdown-ESX.exp
先關VM虛擬機,再關ESX本機。

6.修改本機關機指令 /etc/rups/shutdown.ini
建議要修改為符合的命令。如:
/usr/bin/poweroff
7.測試 把Serial 連結電纜拔除即可進行測試。
本資料來源參考黃國順老師ESX研習講義