PXE自动化安装centos系统

①安装前准备:关闭防火墙和SELINUX,DHCP服务器静态IP ``` iptables -vnL #查看防火墙状态 systemctl stop firewall #关闭防火墙 getenforce #查看SELinux状态 setenforce 0 #禁用SELinux cat > /etc/sysconfig/network-scripts/ifcfg-ens37 <<EOF DEVICE=ens37 #网卡名称 ONBOOT=yes #开启网卡 BOOTPROTO=static #地址获取方式此处为指定静态地址 IPADDR=192.168.109.222 #指定静态地址 PREFIX=24 #指定子网掩码 GATEWAY=192.168.0.1 #指定网关 EOF

		安装软件包
				yum install	httpd tftp-server dhcp  syslinux  system-config-kickstart
		配置文件共享服务:
				systemctl enable  dhcpd httpd tftp	#开机自动启动服务项
				systemctl start  httpd tftp			#开启服务
				dhcpd服务需修改配置文件后才开启
		可使用ss -ntul	(查看服务端口状态)
				dhcpd服务端口号67
				tftp端口服务号69
				http服务端口号80
	```	
**	②准备Yum 源和相关目录**
	mkdir -pv /var/www/html/Centos/{6,7}     #创建文件夹用于存放epel源
开机自动挂载光盘至指定目录
	vim /etc/fstab
			/dev/sr0                                /var/www/html/Contos/7  iso9660 defaults        0 0
			/dev/sr1                                /var/www/html/Centos/6  iso9660 defaults        0 0
	mount -a
![](http://i2.51cto.com/images/blog/201805/27/fff6fd629bdbce7aa52115e297a3ecd4.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

**③准备应答文件(kickstart)**
		vim /var/www/html/ks/centos7.cfg  		#注意:权限设置为644
		chmod 644 centos7.cfg

![](http://i2.51cto.com/images/blog/201805/27/3fc2aca78fe1c9310978328ef313f0ce.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

**④配置DHCP服务**

vim /etc/dhcp/dhcpd.conf #修改DHCP服务配置文件 option domain-name "magedu30.org"; #配置域名后缀 option domain-name-servers 114.114.114.114,1.1.1.1; #配置DNS服务器 default-lease-time 6000; #配置续租时长 max-lease-time 7200; #配置续约最大时长 subnet 192.168.109.0 netmask 255.255.255.0{ #配置网段 range 192.168.109.10 192.168.109.253; #配置网段IP地址 option routers 192.168.109.1; #配置网关 next-server 192.168.109.222; #配置文件获取服务器 filename "pxelinux,0"; #配置文件名 }

![](http://i2.51cto.com/images/blog/201805/27/50558caa1ddff98b191952afc2fb1842.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
		
**⑤配置tftp服务**

准备PXE相关文件 #在tftp服务文件夹下新建目录用于存放iso文件系统 mkdir /var/lib/tftpboot/pxelinux.cfg/ #复制系统启动项文件至新建目录 cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #复制系统启动界面文件至新建目录 cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/ #复制(内核文件)至新建目录 cp /misc/cd/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/ #复制并改名菜单文件 cp /misc/cd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

文件列表如下:
![](http://i2.51cto.com/images/blog/201805/27/f5d17ad411ebe97c8b209f5f2ffb1491.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

**⑥准备启动菜单文件(进入文件更改菜单选项)**

vim /var/lib/tftpboot/pxelinux.cfg/default default menu.c32 #默认菜单界面 timeout 600 #响应时长
menu title www.magedu.com #菜单顶部提示信息 label centos7 #菜单选项① menu label ^Install Desktop CentOS 7 #菜单提示信息(名称) kernel centos7/vmlinuz #指定内核 append initrd=centos7/initrd.img ks=http://192.168.109.222/ksdir/7/ks7_mini.cfg

label centos6							#菜单选项②
	menu label ^install Mini CentOS 6		#菜单提示信息(名称)
	menu default
	kernel centos6/vmlinuz					#指定内核
	append initrd=centos6/initrd.img ks=http://192.168.109.222/ksdir/6/ks6_mini.cfg

label local #菜单选项③ menu label ^Boot from local drive #菜单提示信息(名称) localboot 0xffff menu end


![](http://i2.51cto.com/images/blog/201805/27/c4ef472cd6f44dba8c3b079c1f4e6d62.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)