应用场景:临时安装一个系统或者批量安装linux系统,无需人工介入选择下一步,减少在安装系统上的时间浪费,提高工作效率。
DHCP + TFTP + Syslinux + FTP + Kickstart
系统环境:centos7桌面版(RHEL7适用); //已经关闭 Selinux和 Firewall
说明:之所以选择桌面版是因为后面运行kickstart时需要有类似windows下的对话框弹出,后面详细说明。
配置步骤:
1. 安装DHCP服务
~]#yum install -y dhcp
安装好之后配置dhcp,添加内容如下:
~]#vim /etc/dhcp/dhcpd.conf
allow booting;
allow bootp;
ddns-update-style interim;
ignore client-updates;
subnet 158.158.41.0 netmask 255.255.255.0 { //根据自己网络环境定义子网
option subnet-mask 255.255.255.0;
range dynamic-bootp 158.158.41.210 158.158.41.250;
default-lease-time 36000;
max-lease-time 72000;
next-server 158.158.41.200; //这台主机的IP
filename "pxelinux.0";
}
保存后,启动服务并加入开机启动:
~]#systemctl start dhcpd
~]#systemctl enable dhcpd
2. 安装TFTP服务
~]#yum install -y tftp-server
~]#yum install -y xinetd //tftp由xinetd管理,没有就装上该服务
~]#vim /etc/xinetd.d/tftp //修改配置文件,将disable的值yes改为no
保存后,启动服务并加入开机启动:
~]#systemctl start xinetd
~]#systemctl enable xinetd
3. 安装syslinux服务
~]#yum install -y syslinux
将引导相关文件复制到tftp目录以供客户端下载:(前提:光盘或者镜像文件挂载到/media/cdrom)
~]#cd /var/lib/tftpboot
tftpboot]#cp /usr/share/syslinux/pxelinux.0 .
tftpboot]# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} . //点号“.”不能忘
tftpboot]# cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} .
先在当前目录新建一个目录pxelinux.cfg:
tftpboot]# mkdir pxelinux.cfg
复制相关文件到该目录下并更名为default:
tftpboot]# cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default
接着编辑引导模板文件:
tftpboot]# vim pxelinux.cfg/default
4. 安装FTP服务
~]#yum install -y vsftpd
启动ftp服务并加入开机启动:
~]#systemctl start vsftpd
~]#systemctl enable vsftpd
接着,将光盘里的内容全部copy到安装FTP时生成的目录/var/ftp/中去:(前提:光盘或者镜像文件挂载到/media/cdrom)
5. 安装system-config-kickstart服务
~]#yum install -y system-config-kickstart
安装好之后会生成命令“system-config-kickstart”,直接执行:
~]#system-config-kickstart //这里为了跳出对话框(配置更加直观),才使用的桌面版centos7
以上的这些根据自己需求更改,调整好之后就是为了得到上文中提到的一个ks.cfg文件:
查看一下/var/ftp/pub/目录:
至此,安装和配置完成。
6. 测试自动安装系统
新建了另外一台虚机,打开电源启动: //默认模式是DHCP ,去寻找dhcp服务器
从之前搭建的DHCP服务器获取到IP后,就一系列的获取到了系统安装文件(ftp://158.158.41/...)和自动配置文件(ks.cfg文件):
下面就是系统根据ks.cfg文件自动选择(包括时区,语言,分区,root密码,selinux,防火墙...),并且直到安装完毕后自动重启。
结束.