RHEL6のkickstartインストールだけどホスト名/IPアドレスを手動入力する


RHEL6/CentOS6のkickstartインストールの際、DHCPによるホスト名/IPアドレス配布だけではなく、固定IPアドレスおよびホスト名でのインストールも行いたい。
かといって、起動オプションに細工するとか、個別のkickstartファイルを書く、とかはしたくない。

RHEL4ぐらいのkickstartだと、network行を書かなければ聞いてきたんだけど、いまはそんな仕様ではない模様。

探したらRedHatのkickstart MLで発見「Re: clearpart -all warning

「%pre」内で、コンソールを6番に切り替えてからreadコマンドにより値を入力、とのこと。
(「MORE Kickstart Tips and Tricks」だと3番とあったんだけど、3番でやったら出力が混じったので6番を採用した)
(あと、read -p “~” ~ /dev/tty3 2>&1って記述はうまく動かなかった)

そんなわけで作成したkickstartファイルはこちら!

# Kickstart file automatically generated by anaconda.
#version=DEVEL
install
nfs --server=192.168.44.151 --dir=/images/cent6
lang en_US.UTF-8
keyboard jp106
%include /tmp/network-ks.cfg
rootpw  --plaintext password
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --enforcing
timezone --utc Asia/Tokyo
zerombr
bootloader --location=partition --driveorder=sda --append="crashkernel=auto"
clearpart --all --drives=sda --initlabel
part /boot/efi --fstype=efi --grow --maxsize=200 --size=50
part /boot --fstype=ext4 --size=500
part pv.vol1 --grow --size=1
volgroup vg_vol1 --pesize=4096 pv.vol1
logvol / --fstype=ext4 --name=lv_root --vgname=vg_vol1 --grow --size=1024 --maxsize=51200
logvol swap --name=lv_swap --vgname=vg_vol1 --grow --size=1638 --maxsize=1638
repo --name="CentOS"  --baseurl=nfs:192.168.44.151:/images/cent6 --cost=100
%packages
@core
@server-policy
@workstation-policy
nfs-utils
%end
%pre --log=/root/anaconda-pre.log
#!/bin/bash
exec < /dev/tty6 > /dev/tty6 2>&1
chvt 6
echo "=== Please input this server information ==="
read -p "Enter hostname: " NEWHOSTNAME
read -p "Enter IP address: " NEWIPADDR
read -p "Enter netmask: " NEWNETMASK
read -p "Enter default gw: " NEWGATEWAY
read -p "Enter DNS server IP: " NEWDNS
echo "network --bootproto=static --ip=${NEWIPADDR} --netmask=${NEWNETMASK} --gateway=${NEWGATEWAY} --nameserver=${NEWDNS} --device=eth0 --onboot=yes --hostname=${NEWHOSTNAME}" > /tmp/network-ks.cfg
chvt 1
%end
%post --log=root/anaconda-post.log --erroronfail
echo "192.168.44.151   master" >> /etc/hosts
mkdir /mnt2
mount -t nfs 192.168.44.151:/images/work /mnt2
rpm -ivh /mnt2/chef-11.12.2-1.el6.x86_64.rpm
mkdir -p /etc/chef
cp /mnt2/validation.pem /etc/chef/validation.pem
chmod 0600 /etc/chef/validation.pem
cp /mnt2/client.rb /etc/chef/client.rb
/usr/bin/chef-client
if [ -f /boot/efi/EFI/redhat/grub.conf ]; then
        sed -i "s/rhgb quiet//" /boot/efi/EFI/redhat/grub.conf
fi
if [ -f /boot/grub/grub.conf ]; then
        sed -i "s/rhgb quiet//" /boot/grub/grub.conf
fi
%end
#reboot

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>