世間ではCentOS7がリリースされ、systemdで盛り上がっている(?)ようですが
我が家のkickstartサーバをCentOS6.5で再構築しました。
(今までずっとCentOS5.9だったので早く6系に移行したかったのにこのタイミング)
CentOS5.9でやったときと多少違っていた部分があるので
再度書き残しておきます。
1)必要なパッケージをインストール
yum -y install syslinux
yum -y install dhcp
yum -y install xinetd
yum -y install nfs*
yum -y install tftp-server tftp
# rpm -qa | grep tftp
tftp-server-0.49-7.el6.x86_64
tftp-0.49-7.el6.x86_64
# rpm -qa | grep dhcp
dhcp-4.1.1-38.P1.el6.centos.x86_64
dhcp-common-4.1.1-38.P1.el6.centos.x86_64
2)ISOイメージのアップロード
SCP等でOS(今回はCentOS5.9を使用)イメージをサーバに送る
今回は/tmp直下に置いた。
3)ISOイメージのマウント、展開
mkdir /mnt/centos
mount -t iso9660 -o loop /tmp/CentOS-6.5-x86_64-bin-DVD1.iso /mnt/centos
cd /mnt/centos
mkdir /kickstart/isos
cp -r * /kickstart/isos
展開が終わったらISOイメージはumountしたうえで削除
(ディスク容量節約のため)
cd
umount /mnt/centos
rm -rf /tmp/CentOS-6.5-x86_64-bin-DVD1.iso
4)設定ファイルのコピー
mkdir /tftpboot
cp /usr/share/syslinux/pxelinux.0 /tftpboot/
cp /kickstart/isos/images/pxeboot/initrd.img /tftpboot/
cp /kickstart/isos/images/pxeboot/vmlinuz /tftpboot/
5)PXEブート用の設定ファイルを作成
mkdir /tftpboot/pxelinux.cfg
vi /tftpboot/pxelinux.cfg/default
/tftpboot/linux-install/pxelinux.cfg/defaultの中身
default centos6
label centos6
kernel vmlinuz
append load initrd=initrd.img devfs=nomount ks=nfs:[NFSサーバのIPアドレス]:/kickstart/ksconfig
cp /etc/xinetd.d/tftp /etc/xinetd.d/tftp.orig
vi /etc/xinetd.d/tftp
# 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 = -s -v /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
/etc/init.d/xinetd restart
6)DHCPサーバの設定
ネットワークアドレス:172.17.0.0/16
デフォルトゲートウェイ:172.17.0.1
Kickstart(PXE)サーバ兼DHCPサーバ兼NFSサーバ:172.17.10.254
とした場合の記載例。
[root@dhcp02 ~]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see 'man 5 dhcpd.conf'
#
ddns-update-style interim;
ignore client-updates;
subnet 172.17.0.0 netmask 255.255.0.0 {
# --- default gateway
option routers 172.17.0.1;
option subnet-mask 255.255.0.0;
#option nis-domain "domain.org";
#option domain-name "domain.org";
option domain-name-servers 8.8.8.8;
option time-offset -18000; # Eastern Standard Time
filename "pxelinux.0";
next-server 172.17.10.254;
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
range dynamic-bootp 172.17.10.0 172.17.10.253;
default-lease-time 21600;
max-lease-time 43200;
# we want the nameserver to appear at a fixed address
# host ns {
# next-server marvin.redhat.com;
# hardware ethernet 12:34:56:78:AB:CD;
# fixed-address 207.175.42.254;
# }
}
/etc/init.d/dhcpd restart
7)Kickstartコンフィグの作成
cp /root/anaconda-ks.cfg /kickstart/ksconfig
vi /kickstart/ksconfig
# Kickstart file automatically generated by anaconda.
install
autostep
#cdrom
nfs --server=172.17.10.254 --dir=/kickstart/isos
lang ja_JP.UTF-8
keyboard jp106
#network --device eth0 --bootproto static --ip 172.17.10.254 --netmask 255.255.0.0 --gateway 172.17.0.1 --nameserver 8.8.8.8,8.8.4.4 --hostname dhcp02
network --device eth0 --bootproto=dhcp --hostname localhost
rootpw --iscrypted $6$vPYwOc2ML0SQk9yY$dWBGQq55une4lpPuGiVwLfsqWHjS0nTwbj188OrJWAYnD0JbsUu6YvASKGDuw2qdaae9qgi2lfAygOeWJIgs7/
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone Asia/Tokyo
bootloader --location=mbr --driveorder=sda
text
reboot
#clearpart --drives=sda --all --initlabel --linux
#clearpart --drives=sda --all --initlabel
zerombr
clearpart --all --initlabel
#clearpart --linux --drives=sda --all --initlabel
part /boot --fstype ext4 --size=100 --ondisk=sda
part / --fstype ext4 --size=10000 --ondisk=sda --grow
part swap --size=2048 --ondisk=sda
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#clearpart --all --drives=sda
#part /boot --fstype ext3 --size=100 --ondisk=sda
#part pv.2 --size=0 --grow --ondisk=sda
#volgroup VolGroup00 --pesize=32768 pv.2
#logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=1000 --grow --maxsize=4000
#logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
%packages
@additional-devel
@base
@console-internet
@core
@desktop-platform-devel
@development
@japanese-support
@performance
@server-platform
@server-platform-devel
@server-policy
@system-management
@system-admin-tools
@workstation-policy
libgcrypt-devel
libXinerama-devel
openmotif-devel
libXmu-devel
xorg-x11-proto-devel
startup-notification-devel
libgnomeui-devel
libbonobo-devel
libXau-devel
libXrandr-devel
popt-devel
libdrm-devel
libxslt-devel
libglade2-devel
gnutls-devel
mtools
pax
sgpio
device-mapper-persistent-data
desktop-file-utils
jpackage-utils
前回はautostep入れてもうまくいかないのでclearpartを細かく設定したんですが
今回はclearpartを細かく設定してもインストールが途中で止まる!
autostepを有効にしたらノンストップでインストールするようになりました。
(まぁそれ以外にもtftpやらnfsやらで結構ひっかかってるんですけどね。。)
前回はclearpartを結構細かく設定してあげないとインストールが
途中で止まっていたわけですが、今回は細かく設定しても
止まったので、もしかしたら自動パーティショニングとかでも
いいのかもしれません。が、相変わらず前例踏襲で特にいじってません。
8)NFS設定
vi /etc/exports
/kickstart 172.17.0.0/255.255.0.0(rw)
前回のconfig
/kickstart *
ではうまく動いてくれず。
/etc/init.d/nfs restart
9)サービス無効化とか再起動とか
/etc/init.d/iptables stop
chkconfig iptables off
setenforce 0
vi /etc/sysconfig/selinux
SELINUX=disabled
いしかわさんごめんなさい。。
これで、ESXiとか使って空の仮想マシンを作成して
起動してPXEブートして自動でインストールできればおk。
一応つまづいたポイントもつまづかないように書き直したんで
これで一発でいけるはず?
※参考URL
手順のベースになったサイト
http://blog.layer8.sh/ja/2011/12/21/pxe%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%96%E3%83%BC%E3%83%88%E3%81%A7centos%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%ABkickstart%E3%81%AB%E3%82%88%E3%82%8B/
Kickstartのconfigを書くときに参考にしたサイト。オプションの説明が細かく書いてある。
https://access.redhat.com/site/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-kickstart2-options.html
partで苦戦してるときに参考にしたサイト。なんか見覚えのある名前です。
http://mikeda.jp/wiki/linux:%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E8%87%AA%E5%8B%95%E5%8C%96:kickstart
今回追加で参考にしたサイト
http://d.hatena.ne.jp/adsaria/20080129/1201592532
http://kazmax.zpp.jp/cmd/e/exports.5.html
http://www.server-world.info/query?os=CentOS_6&p=pxe&f=3