kickstart 实现原理
DHCP+PXE+TFTP+HTTP
客服端请求DHCP,通过DCHP指定IP和TFTP服务器,客服端链接到tftp服务器,请求tftp中的文件,读取引导和配置,找到http的url,来安装。
1.准备安装服务(服务器主机为192.168.176.173)
安装如下包:
#yum install syslinux syslinux-devel tftp-server xinted* dhcp httpd -y
syslinux 是一个linux系统,主要要用到其中的pxelinux.0这个启动文件
2.配置tftp:
#sed -i '/disable/s/yes/no/g' /etc/xinetd.d/tftp
及修改/etc/xinetd.d/tftp文件将disable=yes改为disable=no
3.pxe和tftp整合
输入下列命令:
#mount /dev/cdrom /mnt
#mkdir /var/lib/tftpboot/pxelinux.cfg
#cp /mnt/isolinux/isollinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
#cp /mnt/image/pxeboot/vmlinuz /var/lib/tftpboot
#cp /mnt/image/pxeboot/initd.img /var/lib/tftpboot
#cp /usr/share/syslinux/vesamenu.c32 /var/lib/tftpboot
#cp /usr/share/syslinux/pxeliunx.0 /var/lib/tftpboot
chmod 644 /var/lib/tftpboot/pexlinux.cfg/default
同时编辑/var/lib/tftpboot/pxelinux.cfg/default
#cat>/var/lib/tftpboot/pxelinux.cfg/default<<EOF
default vesamenu.c32
timeout 30
display boot.msg
menu clear
menu blackground splash.png
menu title CentOS Linux7
label linux
menu label ^Install CentOS Linux7
menu vesamenu.c32
kernel vmlinuz
append initrd=initrd.img inst.repo=http://192.168.176.173/centos7 quiet ks=http://192.168.16.173/ks.cfg
label check
menu label Test this ^media & install CentOS Linux 7
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CentOSx207x20x86_64 rd.live.check quiet
EOF
4.配置httpd发布
#umount /mnt
#mkdir /var/www/html/centos7
#mount /dev/cdrom /var/www/html/centos7/
#cat>/var/www/html/ks.cfg<<EOF
install
text
keyboard 'us'
rootpw xxxx(填入自己的密码)
timezone 'Asia/Shanghai'
url url--=http://192.168.176.173/centos7
reboot
lang en_US
firewalld --disable
network bootproto=dhcp device=ens33
auth -useshadow --passalgo=sha512
firstboot --disable
selinux disable
bootloader --localtion=mbr
clearpart --all --initlable
part /boot --fstype "xfs" --size=200
part / --fstype "xfs" --grow
part /swap --fstype "swap" --size=512
%pakeage
@base
@core
# 好几块硬盘,做完raid,一般企业级的服务器都有很多个硬盘,整个硬盘有等10T,如果来使用kickstart自动安装并分区呢;一般服务器硬盘超过2T,就不能使用MBR方式来区,需要采用GPT格式,添加如下配置
%pre
parted -s /dev/sdb mklabel gpt
%end
#为了实现kickstart安装完系统后,自动初始化系统等等工作,我们可以在系统安装完后,自动执行定制的脚本,需要在ks.cfg末尾加入如下配置:
%post
mount -t nfs 192.168.176.173:/centos/init /mnt
cd /mnt/ ;/bin/sh auto_init.sh
%end
EOF
5.配置dhcp服务
vim /etc/dhcp/dhcpd.conf
ddns-update-style interim;
ignore client-update;
next-sercer 192.168.176.173; #指定tftp服务器
filename "pxelinux.0"; #指定文件
allow booting; #允许启动
allow bootp; #允许启动
ubnet 192.168.176.0 netmask 255.255.255.0 {
#default gateway
option routers 192.168.176.1;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.0.180 192.168.0.200;
host ns {
hardware ethernet 00:1a:a0:2b:38:81;
fixed-address 192.168.176.173;}
}
6.重启服务
service httpd restart
service dhcpd restart
service xinetd restart
同时也可以通过nginx或者vsftpd来代替httpd部署kickstart