要求环境:

测试环境: 1、PXE服务器:CentOS7 、vmware 的虚拟机 2、(仅主机模式) 192.168.220.168 内网。在部署环境前,先改成桥接模式。能上网。环境搭建成功后再改成主机模式。 3、执行批量安装的机器最低配置:磁盘>=20G ,内存必须2G ;要求全部设置成仅主机模式。 4、要安装的包: DHCP tftp http syslinux(提供引导文件)

1、关闭所有防火墙。

# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

如在生产环境,建议安装iptables,并设置规则。放行UDP 67 68 69 tcp/80 22端口。

2、 安装所需软件包

# yum install dhcp tftp tftp-server syslinux httpd -y

3、挂载光盘制作安装源

# mkdir -pv /var/www/html/centos7/x86_64
# mount /dev/cdrom /mnt/ 
# mount --bind /mnt /var/www/html/centos7/x86_64  #绑定挂载到http默认目录下

4、配置kickstart 的 ks.cfg 文件

#mkdir /var/www/html/ks
#cd !$
#vi ks.cfg

内容如下:

#version=DEVEL
#System authorization information
auth --enableshadow --passalgo=sha512
#Use CDROM installation media
#cdrom
#Install OS instead of upgrade
install
#Use network installation
url --url=http://192.168.220.168/centos7/x86_64
#Use graphical install
graphical
#Run the Setup Agent on first boot
firstboot --enable
#ignoredisk --only-use=sda
#Keyboard layouts
keyboard --vckeymap=cn --xlayouts='cn'
#System language
lang zh_CN.UTF-8

#Network information
network  --bootproto=dhcp --device=enp0s3 --onboot=off --ipv6=auto
network  --hostname=localhost.pkey.cn

#Root password
rootpw --iscrypted $1$yWDcMXl5$rH8ndJJjZ10w0dIHHx/Mo.
#System timezone
timezone Asia/Shanghai --isUtc
#System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
autopart --type=lvm
#Partition clearing information
clearpart --none --initlabel

%packages
net-tools
vim
wget
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
selinux --disabled 
reboot 

说明: 安装的网络镜像地址: url --url=http://192.168.220.168/centos7/x86_64 安装后的系统密码: rootpw --iscrypted $1$yWDcMXl5$rH8ndJJjZ10w0dIHHx/Mo.
密码可以通过openssl passwd -1 "PASSWORD"  安装后可以在%packages 与其%end之间配置预安装的包,更多好玩的配置请参看redhat官方文档

5、启动httpd并设置开机启动

#systemctl start httpd
#systemctl enable httpd
#netstat -lntp |grep ":80"  #查看80端口是否启动,是不是 httpd,并在浏览器上直接输入ip地址,看能不能访问。

6、配置dhcp服务的配置文件

#vim /etc/dhcp/dhcpd.conf 内容如下:

option domain-name "pkey.cn";
option domain-name-servers 192.168.220.1;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.220.0 netmask 255.255.255.0 {
    range dynamic-bootp 192.168.220.120 192.168.220.129;
    option routers 192.168.220.1;
    next-server 192.168.220.168;
  filename "pxelinux.0";
}

7、启动dhcp并设置开机启动

# systemctl start dhcpd
# systemctl enable dhcpd
# netstat -luntp |grep dhcp  #查看服务状态,已经监听在UDP 端口。

8、配置tftp服务

安装好tftp-server软件包后 默认的数据根目录是/var/lib/tftpboot/ 无须修改,只需要复制一些软件引导文件进来。

#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot  #引导文件
#cp /mnt/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot   #内核文件
#cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} /var/lib/tftpboot #引导菜单
#ls  #看没有把文件copy过来。

制件引导默认文件:

#mkdir -pv /var/lib/tftpboot/pxelinux.cfg
#cd !$
#vi default

内容如下:

default menu.c32
   prompt 5
   timeout 30
   MENU TITLE CentOS 7 PXE Menu

   LABEL linux
   MENU LABEL Install CentOS 7 x86_64
   KERNEL vmlinuz
   APPEND initrd=initrd.img inst.repo=http://192.168.220.168/centos7/x86_64 ks=http://192.168.220.168/ks/ks.cfg

9、启动tftp 并设置开机启动

#systemctl start tftp
#systemctl enable tftp
#ps aux |grep tftp  #查看进程有没有启动

测试tftp:

#tftp 192.168.220.168
tftp> get chain.c32
tftp> quit
#ll   #查看有没有把这个文件get 下来。

10、关闭PXE服务器,设置vmware。

# init 0 更改网络适配器为仅主机模式。 更改虚拟网络编辑器。(编辑 —> 虚拟网络编辑器),更改为仅主机模式,并取消本地dhcp服务。

11、开机,重新挂载 cdrom,并检查相关服务情况。开启要安装的客房端(仅主机模式)。

#netstat -lnutp  # 查看 80端口,是不是开启,查看dhcp服务有没有监听 69端口。
#ps aux |grep tftp
#mount /dev/cdrom /mnt/ 
#mount --bind /mnt /var/www/html/centos7/x86_64