スケールアウト型OSSクラウド基盤に最適なUbuntu Serverをひも解く 5

BIOS設定情報を取得、配布するスクリプトの作成

BIOS設定情報を取得、配布するスクリプトの作成

BIOSの設定情報を取得するスクリプトcapbios.shを作成してみましょう。capbios.shスクリプトの例を以下に示します。

# vi /nfsroot/scripts/capbios.sh
#!/bin/bash
/bin/mount -t nfs -o rw,nolock 172.16.12.1:/nfsroot /mnt ←NFSマウント
cd /TOOLKIT/
./conrep -s -f /mnt/data_files/bios.cfg ←conrepでBIOS情報をbios.cfgに記録
cd
/bin/umount /mnt

capbios.shは、管理対象サーバーがPXEブートした後、STKのconrepコマンドが実行され、BIOS設定情報を含むbios.cfgファイルをNFSサーバーの/nfsroot/data_filesディレクトリに保存します。STKで提供されているconrepは、BIOS設定情報の取得や配布を行うことが可能なコマンドです。同様に、BIOS設定情報を配布するSTKのスクリプトも作成しておきましょう。

# vi /nfsroot/scripts/depbios.sh
#!/bin/bash
/bin/mount -t nfs -o rw,nolock 172.16.12.1:/nfsroot /mnt ←NFSマウント
cd /TOOLKIT/
./conrep -l -f /mnt/data_files/bios.cfg ←bios.cfgに基づきconrepでBIOSを設定
cd
/bin/umount /mnt

RAIDコントローラーの設定情報の取得、配布を行うスクリプトの作成

HP ProLiantサーバーで採用されているSmartArray RAIDコントローラーの設定情報を取得するには、STKに含まれるhpssascriptingコマンドを利用します。BIOSと同様、RAIDの設定情報の取得用スクリプトcaphpsa.shと配布用スクリプトdephpsa.shを作成します。

# vi /nfsroot/scripts/caphpsa.sh
#!/bin/bash
/bin/mount -t nfs -o rw,nolock 172.16.12.1:/nfsroot /mnt ←NFSマウント
cd /TOOLKIT/hpssacli/
./hpssascripting -c /mnt/data_files/hpsa.cfg -internal ←RAID情報を取得
cd
/bin/umount /mnt

# vi /nfsroot/scripts/dephpsa.sh
#!/bin/bash
/bin/mount -t nfs -o rw,nolock 172.16.12.1:/nfsroot /mnt ←NFSマウント
cd /TOOLKIT/hpssacli/
./hpssascripting -i /mnt/data_files/hpsa.cfg -internal -reset ←RAIDを設定
cd
/bin/umount /mnt

遠隔管理用チップの設定情報の取得、配布を行うスクリプトの作成

管理対象サーバーの電源操作や仮想コンソールによる操作を行うための遠隔管理チップの設定情報の取得、配布を行うには、STKのhponcfgコマンドを使用します。以下に遠隔管理チップの設定情報取得および配布スクリプトの例を示します。

# vi /nfsroot/scripts/capilo4.sh
#!/bin/bash
/bin/mount -t nfs -o rw,nolock 172.16.12.1:/nfsroot /mnt ←NFSマウント
cd /TOOLKIT/
/bin/modprobe hpilo
./hponcfg -w /mnt/data_files/ilo4.cfg ←遠隔管理チップの情報を取得
cd
/bin/umount /mnt

# vi /nfsroot/scripts/depilo4.sh
#!/bin/bash
/bin/mount -t nfs -o rw,nolock 172.16.12.1:/nfsroot /mnt ←NFSマウント
cd /TOOLKIT/
/bin/modprobe hpilo
./hponcfg -f /mnt/data_files/ilo4.cfg ←遠隔管理チップを設定
cd
/bin/umount /mnt

管理対象サーバーの電源をOFFにするスクリプトの必要性

サーバーに搭載された遠隔管理チップを使って管理対象サーバーの電源をOFFにするスクリプトを作成しておくことをお勧めします。このスクリプトは、管理対象サーバーがPXEブートと再起動を無限に繰り返すことを防ぐ役目を担っています。

# vi /nfsroot/scripts/poweroff.sh
#!/bin/bash
/bin/mount -t nfs -o rw,nolock 172.16.12.1:/nfsroot /mnt ←NFSマウント
cd /TOOLKIT/
/bin/modprobe hpilo
./hponcfg -f /mnt/data_files/Set_Virtual_Power_BTN.xml ←管理対象マシンの電源断

poweroff.shは、遠隔管理チップiLO4の仮想電源ボタンの機能を使って管理対象サーバーの電源をOFFにします。iLO4ではXMLファイルによって様々な制御が可能ですが、ここでは、電源をOFFにするXMLファイルを指定しています。上記スクリプトで指定しているXMLファイルの記述例を以下に示します。

# vi /nfsroot/data_files/Set_Virtual_Power_BTN.xml
<RIBCL VERSION="2.0">
<LOGIN USER_LOGIN="adminname" PASSWORD="password">
<SERVER_INFO MODE="write">
<HOLD_PWR_BTN/>
</SERVER_INFO>
</LOGIN>
</RIBCL>

[参考情報]

無償提供の「HP Lights-Out XML PERL Scripting Sample for Linux」と呼ばれるソフトウェアに、様々なXMLファイルの雛型が収録されています。

BIOS、RAID、遠隔管理チップの設定情報の取得、配布を行うバッチ・スクリプト

上記の取得用スクリプトcapbios.sh、caphpsa.sh、capilo4.sh、poweroff.shを一括して実行するようなバッチ・スクリプトを作成しておくとよいでしょう。バッチ・スクリプトcapall.shとdepall.shは、defaultファイル内で指定したものです。管理対象サーバーがPXEブート後、オンメモリでバッチ・スクリプトがロードされ、STKが実行されます。

# vi /nfsroot/scripts/capall.sh
#!/bin/sh
./capbios.sh
./caphpsa.sh
./capilo4.sh
./poweroff.sh

# vi /nfsroot/scripts/depall.sh
#!/bin/sh
./depbios.sh
./dephpsa.sh
./depilo4.sh
./poweroff.sh

# cd /nfsroot/scripts/
# chmod 755 *.sh

BIOS、RAID、遠隔管理チップの設定情報の取得テスト

DHCP、TFTP、NFSサービスを提供するUbuntu Serverと同一LANセグメントに設置した管理対象サーバーの電源を投入し、管理対象サーバーをPXEブートさせます。NFSサーバーの/nfsroot/data_filesディレクトリにbios.cfg、hpsa.cfg、ilo4.cfgファイルが自動的にアップロードされるはずです。

図2:管理対象サーバーのPXEブートの様子(クリックで拡大)
図3:管理対象サーバーでSTKが実行されている様子(クリックで拡大)
図4:NFSサーバーの/nfsroot/data_filesディレクトリにbios.cfg、hpsa.cfg、ilo4.cfgファイルがアップロードされた様子(クリックで拡大)

BIOS、RAID、遠隔管理チップの設定情報の配布

スケールアウト型基盤では、取得したBIOS設定情報やRAID設定情報等を他の同機種のサーバーに一斉に展開する運用が見られます。これを実施するには、STKによってdepall.shがロードされるように、defaultファイルの「default stk950cap」をコメントアウトし、「default stk950dep」のコメントアウトの記号「#」を外します。

# vi /tftpboot/pxelinux.cfg/default
#default stk950cap
default stk950dep
...

以上で、BIOS、RAID、遠隔管理チップの設定を自動で取得、配布する管理サーバーをUbuntu Serverで構築することができました。スケールアウト型システムにおいては、ハードウェア設定の自動化だけでなく、OS配備の自動化も必要です。さらに、ベアメタル配備と仮想化基盤の両方に対応したスケールアウト型のクラウド基盤では、ハードウェア設定とOSのインストールの両方で自動化が必要になる場合が少なくありません。本連載で記載した手順で、Ubuntu Serverを入れる前のProLiantサーバーのハードウェア設定の自動化に是非挑戦してみてください。

<後編に続きます。>

この記事のキーワード

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る