我们传统的ks自动安装搭建基本就是http(ftp) + tftp + dhcp + pxe ,需要好几个软件安装配置才能搞定。但对于平时服务器安装比较少的小型环境来说,DNSmasq足够用了,Dnsmasq提供DNS缓存、DHCP、Tftp服务功能。所以使用dnsmasq + httpd两个服务就可以搞定ks自动安装的环境了。
一、关闭selinux和firewalld
setenforce 0 getenforce sed -i '/^SELINUX=/c\SELINUX=disable' /etc/selinux/config grep ^SELINUX /etc/selinux/config systemctl stop firewalld systemctl disable firewalld
二、dnsmasq安装配置
dnsmasq安装配置
yum install -y dnsmasq syslinux mkdir /var/ftpd cp -rp /usr/share/syslinux/* /var/ftpd/ //该目录下会有多个文件,实际只用到几个文件,后面会提到
修改其配置如下:
其中pxe-prompt和pxe-service要同时使用才会出现60s等待,按f8进入安装选择界面
如上图,上面白色分割上部分是f8等待界面,按f8后,就进行pxe-server配置的选择界面,pxe-service是可以写多个的。
引导文件配置
挂载Centos/redhat ISO安装镜像到/mnt目录 ,在/mnt/isolinux目录是系统引导相关的配置:
cd /mnt/isolinux cp vmlinuz initrd.img /var/ftpd/ mkdir -p /var/ftpd/pxelinux.cfg cp isolinux.cfg /var/ftpd/pxelinux.cfg/default
注:从这个引导目录也可以看出,从/usr/share/syslinux/拷贝的文件主要用到menu.c32 和 pxelinux.0 ,不过为了不必要的麻烦,最好还是拷全。
default文件也可以不用系统自带的,这里可以自已去编译。自定义写法如下:
cat > /var/ftpd/pxelinux.cfg/default <<EOF default menu.c32 prompt 0 timeout 50 ONTIMEOUT local menu title ########## PXE Boot Menu ########## label 1 menu label ^1)Bootfromlocal drive label 2 menu label ^2)InstallCentOS7 x64 with Kickstart kernel centos7/vmlinuz append initrd=centos7/initrd.img inst.ks=ftp://192.168.0.10/ks.cfg quiet label 3 menu label ^3)InstallCentOS7 x64 with http://mirror.centos.org Repo kernel centos7/vmlinuz append initrd=centos7/initrd.img method=http://mirror.centos.org/centos/7/os/x86_64/ devfs=nomount ip=dhcp label 4 menu label ^4)InstallCentOS7 x64 withLocalRepousing VNC kernel centos7/vmlinuz append initrd=centos7/initrd.img method=ftp://192.168.0.10/pub devfs=nomount inst.vnc inst.vncpassword=password EOF
注:这里最好将从硬盘启动放在第一位,避免内网主机重启时默认配置的是pxe启动,如果default配置中第一个是ks,就会将之前的系统重装。如果第一项是后面的,就会卡在安装界面。
上面label4启动后,可以通过VNC连接进行安装 。
三、yum源配置
在上面的步骤中我们已经将iso安装文件挂载到了/mnt目录下,下面可以通过http webserver配置yum源
yum -y install httpd systemctl start httpd ln -s /mnt/ /var/www/html/ cp ks.cfg /var/www/html/
ks文件的使用和编辑,可以参看我另一篇博客 RH134小结(一)kickstart自动化安装 。
四、pxe安装
以上配置完成后,通过systemctl start dnsmasq 服务,并重新启动一台主机,启动时选择pxe启动。就会自动进入启动选择界面。