[実践編] Ubuntu Serverをスケールアウト型サーバーに配備する(前編)
Ubuntu Server におけるTFTPサーバーの設定
管理対象サーバーへブートイメージを転送するため、TFTPサーバーを構築します。Ubuntu Serverで利用可能なTFTPサーバーのパッケージはいくつか存在しますが、今回はtftpd-hpaパッケージを使用します。
# apt-get install tftpd-hpa
Ubuntu Server 12.04.xのtftpd-hpaの設定ファイル/etc/default/tftpd-hpa内の「TFTP_DIRECTORY=」行に、管理対象サーバー群へ提供するためのディレクトリ/tftpbootを指定します。
# vi /etc/default/tftpd-hpa ... TFTP_DIRECTORY="/tftpboot" ...
dhcpd.confファイル内のfilenameの行に「"pxelinux.0";」を指定し、tftp-hpaファイル内のTFTP_DIRECTORYに「/tftpboot」を指定しているため、管理サーバーの/tftpbootディレクトリにpxelinux.0ファイルを配置する必要があります。上記設定ファイルを記述したら、TFTPサービスを起動します。
# sysv-rc-conf tftpd-hpa on # service tftpd-hpa restart
Ubuntu ServerにおけるNFSサーバーの設定
BIOS、RAID、遠隔管理チップの設定情報を取得するには、管理対象サーバーから管理サーバーにNFSマウントを行いますので、管理サーバーにNFSサーバーを構築します。NFSサーバー上にSTKを配備するためのディレクトリ/nfsrootを作成し、/nfsrootをNFSクライアントに提供できるように、NFSサーバーの/etc/exportsを記述します。
# apt-get install nfs-kernel-server # mkdir -p /nfsroot # vi /etc/exports /nfsroot *(rw,no_root_squash) ←NFS提供ディレクトリと権限を記述
テスト利用の場合には、上記exportsファイルにおいて全てのホストにNFSサービスを提供するように記述しても構いませんが、実際の本番環境のスケールアウト型システムでは、マルチテナント利用やセキュリティ要件を考慮し、NFSサービスを提供するIPアドレスに範囲を設ける必要がありますので注意してください。exportsファイルを記述したら、NFSの関連サービスを起動し、/nfsrootディレクトリがNFSサービスとして提供されているかをshowmountコマンドで確認します。
# service nfs-kernel-server start # sysv-rc-conf nfs-kernel-server on # showmount -e localhost Export list for localhost: /nfsroot *
Scripting Toolkit for LinuxをUbuntu Serverに配備する
近年、スケールアウト型システムでは、システムインテグレーターや顧客側でOSだけでなく、ハードウェアの自動化のためのサーバー環境を整備するケースが増えて来ています。これを実現するためのツールの一つとしてScripting Toolkit for Linux (STK)が存在します。STKは、ProLiantサーバーのBIOS、RAID、遠隔管理チップの設定の取得や配布を可能にするコマンド類をツールキットとしてまとめたものです。
一般的に、ハードウェアベンダーのBIOSやRAIDコントローラー、サーバーのマザーボードに搭載された遠隔管理チップの設定には、ベンダーが提供する設定ユーティリティが提供されていますが、HPでは、設定ユーティリティを集めたコマンドラインベースのツールキットを無償で提供していますので、スクリプトやcron等による自動化、ユーザー独自の管理ツールへの組み込み等が可能です。
他にも、VMwareやHyper-V等を組み込んだプライベートクラウド基盤向けのアプライアンス製品では、OSを配備する前段階のハードウェア(サーバー、ストレージ、ネットワーク等)の設定の自動化をベンダー提供のアプライアンス向けの管理ツールを使って行うように整備されています。
一方、Linux系のスケールアウト型クラウド基盤向けにもベンダー提供の管理ツールが整備されていますが、BIOS、RAID、管理チップに限定すれば、STKを使うことでハードウェア設定の自動化を実現することができます。以下では、Ubuntu Server上にSTKを配備する手順をご紹介します。
STKのキット「hp-scripting-toolkit-linux-9.50.tar.gz」はHPのWebサイトから入手可能です。保守サポートはありませんが、無償で利用することができます。STKをNFSサーバーに展開し、/nfsrootディレクトリにコピーします。
# tar xzvf hp-scripting-toolkit-linux-9.50.tar.gz -C /tmp/ # cp -a /tmp/hp-scripting-toolkit-linux-9.50/* /nfsroot/
管理対象サーバーがPXEブートするのに必要なファイルvmlinuz、initrd.img、pxelinux.0は、STKに含まれています。これらのファイルをUbuntu ServerのTFTPサービスを提供するディレクトリに配置します。
# mkdir -p /tftpboot/stk950 # cd /nfsroot/boot_files/ # cp -a vmlinuz initrd.img /tftpboot/stk950/ # cp -a pxelinux.0 /tftpboot/
次に、管理対象サーバーのPXEブート後にSTKがロードされるために必要な設定をdefaultファイルに記述します。NFSサーバーの/tftpboot/stk950ディレクトリに配置したvmlinuzファイルとinitrd.imgファイルを参照できるように、kernel行とappend行に相対パスで記述します。
# mkdir -p /tftpboot/pxelinux.cfg # vi /tftpboot/pxelinux.cfg/default default stk950cap ←PXEブート後にデフォルトで利用されるラベル名を記述 #default stk950dep ←先頭に#を入れてコメントアウトにしておく prompt 1 timeout 300 label stk950cap ←default行で指定したラベル名を記述 kernel stk950/vmlinuz ←STKで提供されているvmlinuzを指定 append initrd=stk950/initrd.img root=/dev/ram0 rw ramdisk_size=475844 ide=nodma ide=noraid pnpbios=off media=net numa=off iso1=nfs://172.16.12.1/nfsroot sstk_conf=toolkit.conf sstk_script=/capall.sh ←実際には1行で記述 label stk950dep ←default行で指定したラベル名を記述 kernel stk950/vmlinuz ←STKで提供されているvmlinuzを指定 append initrd=stk950/initrd.img root=/dev/ram0 rw ramdisk_size=475844 ide=nodma ide=noraid pnpbios=off media=net numa=off iso1=nfs://172.16.12.1/nfsroot sstk_conf=toolkit.conf sstk_script=/depall.sh ←実際には1行で記述
「iso1=nfs://172.16.12.1/nfsroot」では、NFSサーバーのIPアドレスを指定します。capall.shとdepall.shというスクリプトが記載されていますが、これは、STKをロードするためのバッチ・スクリプトです。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- [実践編] Ubuntu Serverをスケールアウト型サーバーに配備する(後編)
- ブレードサーバとLinux
- [実践編] Ubuntu Serverの運用・管理、商用製品の利用メリットと今後の展望(前編)
- [実践編] MaaSとJujuによるOSS配備、Ubuntu Serverの運用・管理(前編)
- Equinixのベアメタルサービスの中核となるTinkerbellの概要を紹介
- インストールとNICの設定
- 10のインストール!
- デスクトップ仮想化を支える技術
- IPアドレスを管理する「DHCPサーバ」と通信の橋渡し「NATルータ」
- IPアドレスを管理する「DHCPサーバ」と通信の橋渡し「NATルータ」