ESXi上で仮想マシンテンプレートの構築(その8 デプロイの仕方)

デプロイの仕方

新規VMの作成

vSphere Clientから新規VMを作成する。ゲストOSとして「その他の2.6.x Linux (32ビット)」を選択し、新規仮想ディスクを作成する。あとの設定は、適当で良い。まだ起動はしない。

LFS環境のコピー

ホストして一旦他のVMを使用して、LFS環境を新VMにコピーする (前回記事で作成したlfs_template.20130429.tar.xzにアクセス出来る必要がある。)ここでは、LFSのコンパイルに使用したUbuntu 12.04LTS Server 32bitを使用する。

ホストVMを停止し、上記の新規VMで作成した仮想HDDを追加する。ホストVMを起動し、新規HDDが追加されたデバイスファイル名をチェックする。今回は/dev/sdcとして認識された(/dev/sdbにはLFSを構築したHDDが割り当てられているため。)

まず、パーティションを作成する。

sudo fdisk /dev/sdc

/dev/sdc1として”/”にマウントする基本パーティションを、/dev/sdc2としてswapパーティションを作成する(ただし、VMにメモリを十分に割り当てておけば、Swapは無くても動作する)。

次にフォーマットする。

sudo mkfs.ext3 /dev/sdc1 &&
sudo mkswap /dev/sdc2

そして、適当なディレクトリにマウントする(ここでは、/mnt/newhddを使用。)

sudo mkdir /mnt/newhdd &&
sudo mount /dev/sdc1 /mnt/newhdd

lfs_template.20130429.tar.xzの内容を新HDDに展開する。ここでは、ホームディレクトリにコピーされてあると仮定する。

cd /mnt/newhdd &&
sudo tar Jxfv ~/lfs_template.svn20130429.tar.xz &&
sudo sed -i -e "s%/mnt/lfs%/mnt/newhdd%g" /mnt/newhdd/root/chroot.sh

Grubのインストール

新規HDDのMBRにGRUBをインストールする。

sudo /mnt/newhdd/root/chroot.sh

でchroot環境に入った上で、

grub-install /dev/sdc

を実行する(/dev/sdc等のデバイスファイル名はホスト環境と同一。)

環境設定

/etc/fstabの設定

(Swapパーティションを使用する場合、)/etc/fstabのスワップの設定に関する行をコメントアウトする。

/dev/sda2     swap         swap     pri=1               0     0

IPアドレス・ホスト名の設定

DHCPの場合

/etc/sysconfig/networkと/etc/hostsに新しいホスト名を書き込む。

固定IPの場合

/etc/sysconfig/networkに新しいホスト名を書き込む。

/etc/hostsにホスト名とIPアドレスを設定。例えば下記のようになる。

# Begin /etc/hosts

127.0.0.1 localhost
192.168.0.XX newvm.example.net newvm

# End /etc/hosts

/etc/resolv.confを適切に設定する。

/etc/sysconfig/ifconfig.eth0を下記のように設定する。

ONBOOT=yes
IFACE=eth0
SERVICE=ipv4-static
IP=192.168.0.XX
GATEWAY=192.168.0.1
PREFIX=24
BROADCAST=192.168.0.255

Homeのマウント

Homeをマウントする場合は、下記を設定する(ファイルサーバーがセットアップできていることが前提)。

cd ~ &&
tar jxf ~admin/src/blfs-bootscripts-20130324.tar.bz2 &&
cd blfs-bootscripts-20130324 &&
sudo make install-nfs-client &&
sudo make install-netfs &&
cd ../ &&
rm -rf blfs-bootscripts-20130314

/etc/fstabに下記の行を追加する、

192.168.0.11:/home  /home   nfs      rw,nfsvers=3,_netdev,rsize=8192,wsize=8192 0 0

ユーザを作成する。

sudo groupadd -g 1000 users &&
sudo useradd -u 1000 -d /home/username -g users -s /bin/bash username &&
sudo passwd username

将来的には、NISとかLDAPで一元管理したいが、当面は各VMに同じIDでユーザを作成することで対応。

新VMでの起動

chroot環境を抜けて、ホストVMをシャットダウンする。

cd ~ &&
sudo umount /dev/sdc1 &&
sudo rmdir /mnt/newhdd &&
sudo halt

ホストVMから、新HDDを取り外し(仮想HDDファイル自体を削除しないように注意)、新VMを起動する。adminユーザーでログインできる事を確認する。