Create: 2013/08/09
LastUpdate: 2013/08/09
XenServerの仮想マシン生成から、CentOS6.4とxs-toolsのインストールまでを自動化して、スクリプトを1回実行すれば、最小構成のCentOS6.4の仮想マシンができあがるようにしてみます。
仮想マシンの生成には、xe コマンドを使用し、CentOS6.4 と xs-tools のインストールには、kickstart を使用します。
それぞれ、以下のページが参考になります。
このWEBサーバには、kickstart 用のパラメータファイルと、CentOS6.4(32bit)の Disk1 を設置します。
今回作成する仮想マシンの構成は、以下のとおり。
- ディスク: 1個 ※パーティションは自動生成
- NIC: 1個 ※固定IPアドレス
- メモリ: 512Mバイト
- CPU: 1個
- DVDデバイス: 1個
- 言語、キーボード: 日本語環境
- タイムゾーン: Aisa/Tokyo
- ファイヤーウォール: 無効
- SElinux: 無効
- rootパスワード: password
- パッケージ: 最小構成
- 追加設定: xs-tools のインストール
1.kickstart 用のWEBサーバの用意
Kickstart 時にインストーラがアクセスするWEBサーバ(CentOS)を用意します。
WEBサーバの IPアドレスは、"192.168.1.88" とします。
1.1.Apache のインストール
yum コマンドで Apache をインストールします。
# yum install httpdApacheは、デフォルトの設定でOKです。
以下のようにして httpd サービスを起動します。
# service httpd start
1.2.CentOS6.4 の Disk1 設置
CentOSのWebサイトから CentOS6.4(32ビット)のDisk1の isoイメージをダウンロードします。
# cd /var/www/html # curl -L -o ./xxx.iso http://ftp.jaist.ac.jp/pub/Linux/CentOS/6.4/isos/i386/CentOS-6.4-i386-bin-DVD1.isoディレクトリを作成して、isoイメージをマウントします。
# cd /var/www/html # mkdir disk1 # mount -o loop /root/xxx.iso ./disk1
1.3.kickstart 用の パラメータファイル作成
以下のファイル名で、kickstart 用のパラメータファイルを作成します。
- /var/www/html/ks.cfg
通常、OSインストール時に指定するキーボードなどの設定値を、あらかじめ、このファイルに定義しておきます。
各パラメータの説明は、「Redhat Enterprise Linux 6 インストールガイド」を参照してください。
# Kickstart file XenVM for CentOS6.4 #version=DEVEL install url --url=http://192.168.1.88/disk1/ # locale lang ja_JP.UTF-8 keyboard jp106 # text mode install text # network network --onboot yes --device eth0 --bootproto static --ip 192.168.1.99 --netmask 255.255.255.0 --gateway 192.168.1.1 --noipv6 --nameserver 192.168.1.110 # account rootpw --iscrypted $6$IR2ijrgVSHyYPUiB$wshT3X.8ZBIQpZ91UiuUg3IbYFPIEcrG3aCe0L1zvQulG0KomEzJaUbXXVZsh7qaqga.dmXstOkXDvMxIyK2o1 authconfig --enableshadow --passalgo=sha512 # firewall services --disabled iptables,ip6tables firewall --disabled # selinux selinux --disabled # timezone timezone --utc Asia/Tokyo # boot bootloader --location=mbr --driveorder=xvda --append="crashkernel=auto console=hvc0 rhgb quiet" # partition clear zerombr ignoredisk --only-use=xvda clearpart --all --drives=xvda # partition create ###part /boot --fstype=ext4 --size=500 --ondisk=xvda ###part pv.202002 --grow --size=1 ###volgroup VolGroup --pesize=4096 pv.202002 ###logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size=1024 --maxsize=51200 ###logvol swap --name=lv_swap --vgname=VolGroup --grow --size=1024 --maxsize=1024 autopart # reboot reboot firstboot --disable # install package %packages --nobase @core # install xen-tools %post --log=/root/ks_post.log mount -t iso9660 /dev/cdrom /media /media/Linux/install.sh -n umount /media上記スクリプトのポイントを以下に記します。
- 赤字部分のパラメータですが、これを指定しないと、kickstart中にディスクを初期化するか確認を求められるので、インストール処理が途中でとまってしまいます。( このページを参照 )
- xs-tools のインストール処理は、%post に定義し、OSインストール完了後に実施します。%post で定義したコマンドの実行結果は、/root/ks_post.log に保存します。
- パーティションの構成は、autopart を指定して、インストーラに任せます。
# chown -R apache.apache /var/www/html
2.仮想マシン生成用スクリプトの用意
XenServerホストに root ユーザログインして作業します。
以下のファイル名で、仮想マシンを作成するスクリプトを作成します。
- /root/kickstart.sh
xe コマンドで仮想マシンを生成して、起動します。
#!/bin/bash VM_NAME=kickstart KS_CFG=http://192.168.1.88/ks.cfg KS_REPO=http://192.168.1.88/disk1/ # Template UUID=`xe vm-install template="CentOS 6 (32-bit)" new-name-label=${VM_NAME}` # Parameter xe vm-param-set uuid=${UUID} PV-args="ks=${KS_CFG} ksdevice=eth0" xe vm-param-set uuid=${UUID} other-config:install-repository=${KS_REPO} # Memory MEMSZ=$((1024*1024*512)) xe vm-memory-limits-set uuid=${UUID} dynamic-min=${MEMSZ} dynamic-max=${MEMSZ} static-max=${MEMSZ} static-min=${MEMSZ} # Network N_UUID=`xe network-list bridge=xenbr0 --minimal` xe vif-create vm-uuid=${UUID} network-uuid=${N_UUID} mac=random device=0 # DVD xe vm-cd-add cd-name=xs-tools.iso vm=${VM_NAME} device=1 # VM START xe vm-start uuid=${UUID}上記スクリプトのポイントを以下に記します。
- XenServer付属テンプレートの "CentOS 6 (32-bit)" から、"kickstart" という名称で新しい仮想マシンを生成します。
- kickstart 用のパラメータを設定します。
- メモリは、テンプレートのデフォルトが1Gですが、試しに 512Mに設定してみます。
- デフォルトだと、NICが無いので、NICを追加します。
- DVDドライブに "xs-tools.iso"をセットします。
- 仮想マシンを起動すれば、自動的に kickstart が開始されます。
# chmod +x /root/kickstart.sh
3.動作確認
XenServerホストに root ユーザでログインして、上記2のスクリプトを実行します。
# ./kickstart.shこれで、仮想マシンが生成されて、起動します。
このとき、XenCenter のコンソールを開くと、kickstart 処理中の状況が、下図のように見ることができます。
kickstart が終了すると、自動的に仮想マシンがリブートされます。
リブート完了後、下図のように仮想マシンが”最適化”されていれば、xs-toos が正常にインストールされています。
以上で、仮想マシンの作成完了です。
これで、スクリプトを1回実行するだけで、CentOS6.4の仮想マシンが作れるようになりました。