Kickstart 是一种无人值守的安装方式, 其工作原理是预先把原本需要运维人员手工填写的参数保存成一个 ks.cfg 文件, 当安装过程中需要填写参数时则自动匹配 Kickstart 生成的文件.
配置 DHCP 服务程序
DHCP 服务程序用于为客户端主机分配可用的 IP 地址, 而且这是服务器与客户端主机进行文件传输的基础
- [[email protected] ~]# yum install dhcp -y
- [[email protected] ~]# 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 地址后主动获取引导驱动文件, 自行进入下一步的安装过程.
- }
- [[email protected] ~]# systemctl restart dhcpd
- [[email protected] ~]# systemctl enable dhcpd
- ln -s '/usr/lib/systemd/system/dhcpd.service' '/etc/systemd/system/multi-user.target.wants/dhcpd.service'
配置 TFTP 服务程序
使用 TFTP 协议帮助客户端获取引导及驱动文件. TFTP 作为一种基于 UDP 协议的简单文件传输协议, 不需要进行用户认证即可获取到所需的文件资源.
- [[email protected] ~]# yum install tftp-server -y
- [[email protected] ~]# VIM /etc/xinetd.d/tftp
- 14 disable = no # 不要禁用 tftp 功能
- [[email protected] ~]# systemctl restart xinetd
- [[email protected] ~]# systemctl enable xinetd
TFTP 服务程序默认使用的是 UDP 协议, 占用的端口号为 69
- [[email protected] ~]# firewall-cmd --permanent --add-port=69/udp
- success
- [[email protected] ~]# firewall-cmd --reload
- success
- [[email protected] ~]# iptables -F
- [[email protected] ~]# service iptables save
- iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
配置 SYSLinux 服务程序
SYSLinux 是一个用于提供引导加载的服务程序. 与其说 SYSLinux 是一个服务程序, 不如说更需要里面的引导文件, 在安装好 SYSLinux 服务程序软件包后,/usr/share/syslinux 目录中会出现很多引导文件.
- [[email protected] ~]# yum install syslinux
- [[email protected] ~]# cd /var/lib/tftpboot/
- [[email protected] tftpboot]# cp /usr/share/syslinux/pxelinux.0 . # 复制 SYSLinux 提供的引导文件
- [[email protected] tftpboot]# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} . # 复制光盘镜像中引导文件
- [[email protected] tftpboot]# cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} .
- [[email protected] tftpboot]# mkdir pxelinux.cfg
- [[email protected] tftpboot]# cd pxelinux.cfg/
- [[email protected] pxelinux.cfg]# cp /media/cdrom/isolinux/isolinux.cfg default # 复制开机选项菜单, 并命名 default
- [[email protected] pxelinux.cfg]# ls
- default
- [[email protected] 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 服务程序.
- [[email protected] ~]# yum install vsftpd
- [[email protected] ~]# systemctl restart vsftpd
- [[email protected] ~]# systemctl enable vsftpd
- ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service'
- [[email protected] ~]# iptables -F
- [[email protected] ~]# cp -r /media/cdrom/*/var/ftp
配置 HTTP 服务程序
通过把光盘镜像内容传给客户端, 因此也可以使用 vsftpd 来替代 httpd 服务程序.
- [[email protected] ~]# yum install httpd -y
- [[email protected] ~]# systemctl restart httpd
- [[email protected] ~]# systemctl enable httpd
- ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'
- [[email protected] ~]# systemctl status httpd
- [[email protected] ~]# cp -rf /mnt/*/var/www/html/
- [[email protected] ~]# mkdir -p /var/www/HTML/config # 新建目录, 把自定义的文件, 脚本等放置于此
创建 KickStart 应答文件
- [[email protected] ~]# ls # 在 root 管理员的家目录中有一个名为 anaconda-ks.cfg 的文件, 它就是应答文件
- [[email protected] ~]# cp anaconda-ks.cfg /var/ftp/pub/
- [[email protected] ~]# cd /var/ftp/pub/
- [[email protected] pub]# ls
- anaconda-ks.cfg
- [[email protected] pub]# mv anaconda-ks.cfg ks.cfg
- [[email protected] pub]# chmod +r ks.cfg # 确保所有人都有可读权限, 以保证客户端主机顺利获取到应答文件及里面的内容
- [[email protected] 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 # 磁盘选项设置为清空所有磁盘内容并初始化磁盘
- [[email protected] ~]# 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/
- #!!!
检查是否存在错误
- [[email protected] ~]# yum install pykickstart
- [[email protected] ~]# ksvalidator ks.cfg
来源: http://www.bubuko.com/infodetail-3375272.html