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