ESXi6.0をpxebootで自動インストールする。


はじめに

ESXi6.0の自動インストールの手順をまとめました。
自分の備忘をかねているのでやや長文です。

目次

  1. DHCPサーバの構築
  2. TFTPサーバの構築
  3. Webサーバの構築
  4. OSイメージの準備
  5. 設定ファイルの準備
  6. kickstartファイルの準備
  7. 起動する

1. DHCPサーバの構築

1.DHCPサーバを準備します。

# yum install dhcp
# rpm -qa | grep dhcp
dhcpv6-client-1.0.10-4.el5
dhcp-3.0.5-18.el5

2./etc/dhcpd.conf を編集します。
 ①「range」の行は、DHCPで割り当てるIPアドレスの範囲を記入する。
 ②「option routers」の行は、getewayを指定する。
 ③「next-server」の行は、この仮想マシン自体のIPアドレスを指定する。
 ④「filename」の行は、bootx64.efiを指定する。

ddns-update-style interim;

allow booting;
allow bootp;

ignore client-updates;
set vendorclass = option vendor-class-identifier;

option pxe-system-type code 93 = unsigned integer 16;

subnet 172.23.0.0 netmask 255.255.0.0 {
     option subnet-mask         255.255.0.0;
     range dynamic-bootp        172.23.190.60 172.23.190.80;
     default-lease-time         21600;
     max-lease-time             43200;
     next-server                172.23.190.6;
     filename                   "/var/lib/tftpboot/linux_install/pxelinux.0";
}

3.サービスを再起動します。

# service dhcpd restart

2. TFTPサーバの構築

1.TFTPサーバを用意します。

# yum install tftp-server tftp
# rpm -qa | grep tftp
tftp-0.49-7.el6.x86_64
tftp-server-0.49-7.el6.x86_64

2./etc/xinitd.d/tftpを編集します。
 ①「server_args」の行は、TFTPでアクセスしたときに見せるディレクトリを指定する。
 ②「disable」の行を「no」に書き換える。

# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
      socket_type             = dgram
      protocol                = udp
      wait                    = yes
      user                    = root
      server                  = /usr/sbin/in.tftpd
      server_args             = -v -s /tftpboot
      disable                 = no
      per_source              = 11
      cps                     = 100 2
      flags                   = IPv4
}

3.サービスを再起動します。

# service xinetd restart

3. Webサーバの構築

1.Webサーバをインストールします。

# yum install httpd
# rpm -qa | grep httpd
httpd-2.2.15-39.el6.x86_64
httpd-tools-2.2.15-39.el6.x86_64

2.ホスト名を確認します。

# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hostname

3./etc/httpd/conf/httpd.confを編集します。
 ①「ServerName」の行に、ホスト名を入力する。
 ②「AddDefaultCharset UTF-8」の行は、コメントアウトする。

(途中省略)
ServerName hostname
(途中省略)
#AddDefaultCharset UTF-8

4.サービスを再起動します。

# service httpd restart

5.SELinuxを無効化します。

# /usr/sbin/getenforce
Enfording

4.OSイメージの準備

1.ESXi6.0のisoをマウントします。

# mount -t iso9660 -o loop /root/~.iso /tmp/esxi6.0

2.TFTPサーバへ格納します。

# cp /tmp/esxi6.0/* /tftpboot/esxi_install/esxi6.0/
# cp /tmp/esxi6.0/efi/boot/bootx64.efi /tftpboot/esxi_install/

5. 設定ファイルの準備

1.インストール対象のサーバのうち、接続するNICのMACアドレスを調べておいてください。
2.そのMACアドレス名でディレクトリを作成し、boot.cfgを置きます。
 ※xx-xx-xx-xx-xx-xxは、MACアドレスを表しています。
 ※MACアドレスの英字は小文字で入力してください。(大文字だと読み込めないようです。)

# mkdir /tftpboot/esxi_install/01-xx-xx-xx-xx-xx-xx
# cp /tmp/esxi6.0/efi/boot/boot.cfg /tftpboot/esxi_install/01-xx-xx-xx-xx-xx-xx/

3.設定ファイルの中身を編集します。

bootstate=0
title=Loading ESXi installer (^^)
timeout=3

prefix=esxi_install/esxi6.0
kernel=tboot.b00
#kernelopt=runweasel

kernelopt=ks=http://192.168.190.50/01-xx-xx-xx-xx-xx-xx.cfg

modules=b.b00 --- jumpstrt.gz …(この先は省略です。)

6.kickstartファイルの準備

1.Webサーバ内に「/var/www/html/01-xx-xx-xx-xx-xx-xx.cfg」を作成します。
 ここへ、IPアドレスなど設定したい内容を記入します。

vmaccepteula
install --firstdisk --overwritevmfs
rootpw password
keyboard Japanese

network --bootproto=static --ip=10.60.190.20 --gateway=10.160.190.1 --nameserver=10.60.190.17,10.60.190.18 --netmask=255.255.255.0 --hostname=testserver --addvmportgroup=1 --vlanid=0

reboot

%firstboot --interpreter=busybox

vim-cmd hostsvc/enable_ssh
vim-cmd hostsvc/start_ssh
vim-cmd hostsvc/enable_esx_shell
vim-cmd hostsvc/start_esx_shell
esxcli system module parameters set -m tcpip4 -p ipv6=0

reboot

7. 起動する

インストール対象のサーバとPCを接続し、サーバをネットワークブートすると
ESXi6.0が自動でインストールされます。