[実践編] Ubuntu Serverをスケールアウト型サーバーに配備する(前編)
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ファイルが自動的にアップロードされるはずです。
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サーバーのハードウェア設定の自動化に是非挑戦してみてください。
<後編に続きます。>
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- [実践編] Ubuntu Serverをスケールアウト型サーバーに配備する(後編)
- ブレードサーバとLinux
- [実践編] Ubuntu Serverの運用・管理、商用製品の利用メリットと今後の展望(前編)
- [実践編] MaaSとJujuによるOSS配備、Ubuntu Serverの運用・管理(前編)
- Equinixのベアメタルサービスの中核となるTinkerbellの概要を紹介
- インストールとNICの設定
- 10のインストール!
- デスクトップ仮想化を支える技術
- IPアドレスを管理する「DHCPサーバ」と通信の橋渡し「NATルータ」
- IPアドレスを管理する「DHCPサーバ」と通信の橋渡し「NATルータ」