我们传统的ks自动安装搭建基本就是http(ftp) + tftp + dhcp + pxe ,需要好几个软件安装配置才能搞定。但对于平时服务器安装比较少的小型环境来说,DNSmasq足够用了,Dnsmasq提供DNS缓存、DHCP、Tftp服务功能。所以使用dnsmasq + httpd两个服务就可以搞定ks自动安装的环境了。

一、关闭selinux和firewalld

1setenforce   0
2getenforce
3sed  -i    '/^SELINUX=/c\SELINUX=disable'   /etc/selinux/config
4grep   ^SELINUX    /etc/selinux/config
5systemctl   stop   firewalld
6systemctl   disable   firewalld

二、dnsmasq安装配置

dnsmasq安装配置

1yum install -y dnsmasq syslinux
2mkdir /var/ftpd
3cp -rp /usr/share/syslinux/* /var/ftpd/   //该目录下会有多个文件,实际只用到几个文件,后面会提到

修改其配置如下:

dnsmasq-pxe
dnsmasq-pxe

其中pxe-prompt和pxe-service要同时使用才会出现60s等待,按f8进入安装选择界面

pxe-f8
pxe-f8

如上图,上面白色分割上部分是f8等待界面,按f8后,就进行pxe-server配置的选择界面,pxe-service是可以写多个的。

引导文件配置

挂载Centos/redhat ISO安装镜像到/mnt目录 ,在/mnt/isolinux目录是系统引导相关的配置:

1cd /mnt/isolinux
2cp vmlinuz initrd.img  /var/ftpd/
3mkdir -p /var/ftpd/pxelinux.cfg
4cp isolinux.cfg /var/ftpd/pxelinux.cfg/default

注:从这个引导目录也可以看出,从/usr/share/syslinux/拷贝的文件主要用到menu.c32 和 pxelinux.0 ,不过为了不必要的麻烦,最好还是拷全。

default文件也可以不用系统自带的,这里可以自已去编译。自定义写法如下:

 1cat  > /var/ftpd/pxelinux.cfg/default <<EOF
 2default menu.c32
 3prompt 0
 4timeout 50
 5ONTIMEOUT local
 6menu title ##########      PXE Boot Menu ##########
 7label 1
 8menu label ^1)Bootfromlocal      drive
 9label 2
10menu label ^2)InstallCentOS7  x64 with Kickstart
11kernel      centos7/vmlinuz
12append initrd=centos7/initrd.img  inst.ks=ftp://192.168.0.10/ks.cfg quiet
13label 3
14menu label ^3)InstallCentOS7 x64 with http://mirror.centos.org Repo
15kernel      centos7/vmlinuz
16append initrd=centos7/initrd.img  method=http://mirror.centos.org/centos/7/os/x86_64/  devfs=nomount  ip=dhcp
17label 4
18menu label ^4)InstallCentOS7 x64 withLocalRepousing VNC
19kernel      centos7/vmlinuz
20append initrd=centos7/initrd.img  method=ftp://192.168.0.10/pub devfs=nomount inst.vnc  inst.vncpassword=password
21EOF

注:这里最好将从硬盘启动放在第一位,避免内网主机重启时默认配置的是pxe启动,如果default配置中第一个是ks,就会将之前的系统重装。如果第一项是后面的,就会卡在安装界面。

上面label4启动后,可以通过VNC连接进行安装 。

三、yum源配置

在上面的步骤中我们已经将iso安装文件挂载到了/mnt目录下,下面可以通过http webserver配置yum源

1yum -y install httpd
2systemctl start httpd
3ln -s /mnt/ /var/www/html/
4cp ks.cfg /var/www/html/

ks文件的使用和编辑,可以参看我另一篇博客 RH134小结(一)kickstart自动化安装

四、pxe安装

以上配置完成后,通过systemctl start dnsmasq 服务,并重新启动一台主机,启动时选择pxe启动。就会自动进入启动选择界面。