Kickstart是一种无人值守的安装方式,其工作原理是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg文件,当安装过程中需要填写参数时则自动匹配Kickstart生成的文件。
配置DHCP服务程序
DHCP服务程序用于为客户端主机分配可用的IP地址,而且这是服务器与客户端主机进行文件传输的基础
[root@linuxprobe ~]# yum install dhcp -y
[root@linuxprobe ~]# vim /etc/dhcp/dhcpd.conf # 分配IP地址
allow booting;
allow bootp; # 允许了BOOTP引导程序协议,旨在让局域网内暂时没有操作系统的主机也能获取静态IP地址
ddns-update-style interim;
ignore client-updates;
subnet 192.168.10.0 netmask 255.255.255.0 { # 设置网段
option subnet-mask 255.255.255.0; # 设置网关#设置子网掩码
option domain-name-servers 192.168.10.10; # 设置dns服务器地址
range dynamic-bootp 192.168.10.100 192.168.10.200; # IP地址租用的范围
default-lease-time 21600; # 默认租约时间
max-lease-time 43200; # 大租约时间
next-server 192.168.10.10; # tftp服务器地址
filename "pxelinux.0"; # 在配置文件的最下面加载了引导驱动文件pxelinux.0(这个文件会在下面的步骤中创建),其目的是让客户端主机获取到IP地址后主动获取引导驱动文件,自行进入下一步的安装过程。
}
[root@linuxprobe ~]# systemctl restart dhcpd
[root@linuxprobe ~]# systemctl enable dhcpd
ln -s ‘/usr/lib/systemd/system/dhcpd.service‘ ‘/etc/systemd/system/multi-user.target.wants/dhcpd.service‘
配置TFTP服务程序
使用TFTP协议帮助客户端获取引导及驱动文件。TFTP作为一种基于UDP协议的简单文件传输协议,不需要进行用户认证即可获取到所需的文件资源。
[root@linuxprobe ~]# yum install tftp-server -y
[root@linuxprobe ~]# vim /etc/xinetd.d/tftp
14 disable = no # 不要禁用tftp功能
[root@linuxprobe ~]# systemctl restart xinetd
[root@linuxprobe ~]# systemctl enable xinetd
TFTP服务程序默认使用的是UDP协议,占用的端口号为69
[root@linuxprobe ~]# firewall-cmd --permanent --add-port=69/udp
success
[root@linuxprobe ~]# firewall-cmd --reload
success
[root@linuxprobe ~]# iptables -F
[root@linuxprobe ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
配置SYSLinux服务程序
SYSLinux是一个用于提供引导加载的服务程序。与其说SYSLinux是一个服务程序,不如说更需要里面的引导文件,在安装好SYSLinux服务程序软件包后,/usr/share/syslinux目录中会出现很多引导文件。
[root@linuxprobe ~]# yum install syslinux
[root@linuxprobe ~]# cd /var/lib/tftpboot/
[root@linuxprobe tftpboot]# cp /usr/share/syslinux/pxelinux.0 . # 复制SYSLinux提供的引导文件
[root@linuxprobe tftpboot]# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} . # 复制光盘镜像中引导文件
[root@linuxprobe tftpboot]# cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} .
[root@linuxprobe tftpboot]# mkdir pxelinux.cfg
[root@linuxprobe tftpboot]# cd pxelinux.cfg/
[root@linuxprobe pxelinux.cfg]# cp /media/cdrom/isolinux/isolinux.cfg default # 复制开机选项菜单,并命名default
[root@linuxprobe pxelinux.cfg]# ls
default
[root@linuxprobe pxelinux.cfg]# vim default
1 default linux # 系统在开机时就会默认执行那个名称为linux的选项
61 label linux
62 menu label ^Install Red Hat Enterprise Linux 7.0
63 kernel vmlinuz
64 append initrd=initrd.img inst.stage2=ftp://192.168.10.10 ks=ftp://192.168.10.10/pub/ks.cfg quiet
# 将默认的光盘镜像安装方式修改成FTP文件传输方式,并指定好光盘镜像的获取网址以及Kickstart应答文件的获取路径
64 append initrd=initrd.img ks=http://192.168.134.130/config/ks.cfg biosdevname=0 net.i
# 将默认的光盘镜像安装方式修改成HTTP协议,并指定好光盘镜像的获取网址以及Kickstart应答文件的获取路径
配置VSFtpd服务程序
vsftpd服务程序用于将完整的系统安装镜像通过网络传输给客户端。当然,只要能将系统安装镜像成功传输给客户端即可,因此也可以使用httpd来替代vsftpd服务程序。
[root@linuxprobe ~]# yum install vsftpd
[root@linuxprobe ~]# systemctl restart vsftpd
[root@linuxprobe ~]# systemctl enable vsftpd
ln -s ‘/usr/lib/systemd/system/vsftpd.service‘ ‘/etc/systemd/system/multi-user.target.wants/vsftpd.service‘
[root@linuxprobe ~]# iptables -F
[root@linuxprobe ~]# cp -r /media/cdrom/* /var/ftp
配置HTTP服务程序
通过把光盘镜像内容传给客户端,因此也可以使用vsftpd来替代httpd服务程序。
[root@linuxprobe ~]# yum install httpd -y
[root@linuxprobe ~]# systemctl restart httpd
[root@linuxprobe ~]# systemctl enable httpd
ln -s ‘/usr/lib/systemd/system/httpd.service‘ ‘/etc/systemd/system/multi-user.target.wants/httpd.service‘
[root@linuxprobe ~]# systemctl status httpd
[root@linuxprobe ~]# cp -rf /mnt/* /var/www/html/
[root@linuxprobe ~]# mkdir -p /var/www/html/config # 新建目录,把自定义的文件、脚本等放置于此
创建KickStart应答文件
[root@linuxprobe ~]# ls # 在root管理员的家目录中有一个名为anaconda-ks.cfg的文件,它就是应答文件
[root@linuxprobe ~]# cp anaconda-ks.cfg /var/ftp/pub/
[root@linuxprobe ~]# cd /var/ftp/pub/
[root@linuxprobe pub]# ls
anaconda-ks.cfg
[root@linuxprobe pub]# mv anaconda-ks.cfg ks.cfg
[root@linuxprobe pub]# chmod +r ks.cfg # 确保所有人都有可读权限,以保证客户端主机顺利获取到应答文件及里面的内容
[root@linuxprobe pub]# vim ks.cfg # 使用vsftpd服务程序。
6 url --url=ftp://192.168.10.10
12 # System language
13 # lang zh_CN.UTF-8
21 timezone Asia/Shanghai --isUtc
29 clearpart --all --initlabel # 磁盘选项设置为清空所有磁盘内容并初始化磁盘
[root@linuxprobe ~]# vim /var/www/html/config/ks.cfg # 使用httpd服务程序。
# Use network installation
url --url="http://192.168.134.130/"
#!!!
# Use CDROM installation media
repo --name="yum" --baseurl=http://192.168.134.130/
#!!!
检查是否存在错误
[root@linuxprobe ~]# yum install pykickstart
[root@linuxprobe ~]# ksvalidator ks.cfg
原文:https://www.cnblogs.com/dinghailong128/p/12178434.html