2011年10月27日木曜日

VMWare ESX5の自動インストール

VMWare ESX5を、一度に、たくさんのサーバーに、入れることがちょいちょいあります。いや、ないかも。そのときに必要なインストール用のサーバーのメモ。(2011-9に試した方法なので、ちょっと古いかも)

このインストール用サーバーがあると、
空のサーバー機に、簡単に(CDメディアとか無しで)、VMWare ESX5をインストールすることが出来るようになります。(PXEブートして、ネットワーク上においたESX5インストールセットから、ESX5をインストルします。MACアドレスに対応づけた設定ファイルを置くことで、サーバー毎の設定を自動設定することもできます。)

この記事は、今のところちょっと手抜きで、こっちのCentOS6用の記事をベースにしてます。記事は、手抜き中。

インストール用サーバーは、1つのLinuxサーバーに、
・VMWare ESXのインストーラー一式を置く(tftp)
・PXEブート用のサーバー(dhcp, tftp)を置く
・必要ならば、インストール対象サーバー毎(MACアドレスで識別)の設定をファイル(kickstartファイル)で置く(http)
と、設定しておきます。

インストール対象のサーバーは、 インストール用サーバーと同一ネットワークにつなげて、ブートして放っておくとESX5が動いていることになります。

1. VMWare ESX5のローカルリポジトリ

/tftpboot/esxi50/に、VMware-VMvisor-Installer-5.0.0-nnnnnn.x86_64.isoの中身をまるっとコピーしておきます。

手順はざっと、VMware-VMvisor-Installer-5.0.0-nnnnnn.x86_64.isoを、/tmp/においたとして、

> cd /tftpboot/
> mkdir esxi50
> mount -o loop /tmp/VMware-VMvisor-Installer-5.0.0-nnnnnn.x86_64.iso /mnt/
> rsync -a /mnt/ esxi50/

2. PXEブートサーバー

これと同じように、dhcpとtftpとhttpサーバーを作る

dhcpの設定は、どれそれ

httpサーバーの設定は、どれそれ

/tftpboot/に、PXEブート用の設定をつくる

> ls -F /tftpboot/
esxi50/
pxelinux.0
pxelinux.cfg/

ここで、pxelinux.0は、これといっしょ。




2-1. PXEブートの最初の設定ファイル

こんなファイルを用意

> cat pxelinux.cfg/default
default esxi50

label esxi50
kernel /esxi50/mboot.c32
append -c /esxi50/boot.cfg

2-2. 次のESXインストーラーブート用の設定ファイル

最初からあるesxi50/boot.cfgから、 設定ファイル内のフルパス部分を変更
コピーしておいて、boot.cfgを、viなら「:%s#/##g」

結局こんなファイルを用意
> cat esxi50/boot.cfg
bootstate=0
title=Loading ESXi installer
prefix=/esxi50/
kernel=tboot.b00
#kernelopt=runweasel
modules=b.b00 --- useropts.gz --- k.b00 --- a.b00 --- ata-pata.v00 --- ata-pata.v01 --- ata-pata.v02 --- ata-pata.v03 --- ata-pata.v04 --- ata-pata.v05 --- ata-pata.v06 --- ata-pata.v07 --- block-cc.v00 --- ehci-ehc.v00 --- s.v00 --- weaselin.i00 --- ima-qla4.v00 --- ipmi-ipm.v00 --- ipmi-ipm.v01 --- ipmi-ipm.v02 --- misc-cni.v00 --- misc-dri.v00 --- net-be2n.v00 --- net-bnx2.v00 --- net-bnx2.v01 --- net-cnic.v00 --- net-e100.v00 --- net-e100.v01 --- net-enic.v00 --- net-forc.v00 --- net-igb.v00 --- net-ixgb.v00 --- net-nx-n.v00 --- net-r816.v00 --- net-r816.v01 --- net-s2io.v00 --- net-sky2.v00 --- net-tg3.v00 --- ohci-usb.v00 --- sata-ahc.v00 --- sata-ata.v00 --- sata-sat.v00 --- sata-sat.v01 --- sata-sat.v02 --- sata-sat.v03 --- scsi-aac.v00 --- scsi-adp.v00 --- scsi-aic.v00 --- scsi-bnx.v00 --- scsi-fni.v00 --- scsi-hps.v00 --- scsi-ips.v00 --- scsi-lpf.v00 --- scsi-meg.v00 --- scsi-meg.v01 --- scsi-meg.v02 --- scsi-mpt.v00 --- scsi-mpt.v01 --- scsi-mpt.v02 --- scsi-qla.v00 --- scsi-qla.v01 --- uhci-usb.v00 --- tools.t00 --- imgdb.tgz --- imgpayld.tgz
build=
updated=0

2-3. (必要ならば)インストール対象サーバ毎の設定ファイル

このファイルが無ければ、デフォルトでESXが入るだけです。あとで、手動で設定変更すればいいかと。

ここでは、インストール対象サーバーのMACアドレスに対応した設定ファイル(IPアドレスその他)を用意しておきます。

例えば、こんなファイルを用意し、httpで、見えるようにおいておきます。(ここでは、例えば、http://10.1.1.100/ksesx5-server001.cfgで見えるように置いておきます。)

> cat kickstart-server001.cfg
accepteula
install --firstdisk --overwritevmfs
rootpw password

reboot
network --bootproto=static --ip=10.1.1.1 --gateway=10.1.1.254 --nameserver=10.1.1.254 --netmask=25
5.255.255.0 --hostname=server001.saburi380.com --addvmportgroup=1

%firstboot --interpreter=busybox

# enable & start remote ESXi Shell  (SSH)
vim-cmd hostsvc/enable_ssh
vim-cmd hostsvc/start_ssh

# enable & start ESXi Shell (TSM)
vim-cmd hostsvc/enable_esx_shell
vim-cmd hostsvc/start_esx_shell

# enable password login (SSH)
sed -i "s/PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_config


ただし、
・rootpw行のパスワードは、書き換えましょう。そのまんま書くのが嫌な人は、「rootpw --iscrypted ごにょごにょ」と書きます。ごにょごにょの求め方は、例えばパスワードが「naisyo」の人は、「openssl passwd -1 naisyo」とします。
・network行は、好きなように書き換えます。
%firstboot行以降は、ESXサーバーへのssh接続を可能にしちゃってます。嫌な人は消します。

それから、2-1のファイルの代わりに、「pxelinux.cfg/MACアドレス」の名前のファイルを作って、そこにkickstartファイルを読み込む設定を追加します。

> cat pxelinux.cfg/MACアドレス
default esxi50

label esxi50
kernel /esxi50/mboot.c32
append -c /esxi50/boot.cfg ks=http://10.1.1.100/ksesx5-server001.cfg


参考サイト
http://www.vcritical.com/2011/07/vmware-esxi-5-interactive-pxe-installation-improvements/
http://music.roderickderks.nl/kb/technical/321-esxi5-pxe-boot-setup-and-kscfg


--
以上

0 件のコメント:

コメントを投稿