要求环境:
测试环境: 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