PXE服务器(192.168.68.2)
- 系统文件(ios,光驱);
- TFTP服务;
- DHCP服务;
- Linux内核;
- 能够向客户机裸机发送PXE引导程序;
- 启动菜单及无人应答文件等
1、配置YUM仓库,并安装ftp服务:
[root@localhost ~]# mount /dev/cdrom /media
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# rm -rf *
[root@localhost yum.repos.d]# vim server.repo
[Server]
name=local-server
baseurl=file:///media
gpgcheck=0
[root@localhost yum.repos.d]# yum -y install vsftpd
2、准备centos7安装源并启动ftp服务:
[root@localhost yum.repos.d]# mkdir /var/ftp/centos7
[root@localhost yum.repos.d]# cp -rf /media/* /var/ftp/centos7/
[root@localhost yum.repos.d]# systemctl start vsftpd
#启动ftp服务
[root@localhost yum.repos.d]# systemctl enable vsftpd
#设置为开机自启
3、安装并启动TFTP服务:
[root@localhost yum.repos.d]# yum -y install tftp-server
[root@localhost yum.repos.d]# vim /etc/xinetd.d/tftp
#编辑TFTP配置文件
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot #此处为发布目录
disable = no #将此处默认的yes改为no即可
per_source = 11
cps = 100 2
flags = IPv4
}
#启动TFTP服务
[root@localhost yum.repos.d]# systemctl start tftp
#设置为开机自启动
[root@localhost yum.repos.d]# systemctl enable tftp
4、准备Linux内核:
[root@localhost ~]# cd /media/images/pxeboot/
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/
[root@localhost pxeboot]# cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/
5、准备PXE引导程序:
[root@localhost pxeboot]# yum -y install syslinux #安装引导程序
[root@localhost pxeboot]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/
6、配置启动菜单:
[root@localhost pxeboot]# mkdir /var/lib/tftpboot/pxelinux.cfg
default linux
label linux
kernel vmlinuz
append ks=ftp://192.168.68.2/ks.cfg initrd=initrd.img
7、安装并启用DHCP服务器
[root@localhost pxeboot]# yum -y install dhcpd
[root@localhost pxeboot]# vim /etc/dhcp/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
# 注意网段需要相同。否则无法使用
subnet 192.168.68.0 netmask 255.255.255.0 {
# # 与服务器IP地址相同
option routers 192.168.68.2;
# # IP默认租约时间
default-lease-time 21600;
# #IP最大租约时间
max-lease-time 43200;
# #IP租约地址池,这里要注意网段一定相同,否则起不来DHCP服务
range 192.168.68.20 192.168.68.120;
option subnet-mask 255.255.255.0;
#指定TFTP服务器的地址
next-server 192.168.153.111;
#指定PXE引导程序的文件名
filename "pxelinux.0";
}
[root@localhost pxeboot]# systemctl start dhcpd
[root@localhost pxeboot]# systemctl enable dhcpd
8、准备安装应答文件:
#安装所需工具
root@localhost pxeboot]# yum -y install system-config-kickstart
root@localhost pxeboot]# system-config-kickstart
保存后的应答文件:
[root@localhost ~]# vim ks.cfg #最后生成的应答文件如下
(可直接复制此文件便可省略图形化配置的那些步骤,结合实际需求进行修改后使用即可):
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$bauETRq3$WOpze2jeKD9q3qgKK50xj0
# Use network installation
url --url="ftp://ftp:192.168.1.1/centos7"
# System language
lang zh_CN
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled
# Firewall configuration
firewall --disabled
# Network information
network --bootproto=dhcp --device=ens33
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Partition clearing information
clearpart --all
# Disk partitioning information
part /boot --fstype="xfs" --size=500
part /home --fstype="xfs" --size=4096
part swap --fstype="swap" --size=2048
part / --fstype="xfs" --grow --size=1
%post --interpreter=/bin/bash
cd /etc/yum.repos.d
rm -rf *
echo -e "[base]" > aa.repo
echo -e "baseurl=ftp://192.168.1.1/centos7" >> aa.repo
echo -e "gpgcheck=0" >> aa.repo
%end
不过上面的配置文件还差点东西,需要在配置文件末尾继续写入三行,以此来选择最小安装:
%packages
@^minimal
%end
写好后,保存退出即可。
9、将自动应答文件复制到指定目录(在之前的引导菜单指定的“ks=”项的路径):
[root@localhost ~]# cp /root/ks.cfg /var/ftp/
10、把光驱挂载到/var/ftp/centos7下
[root@localhost ~]# umount /media
[root@localhost ~]# mount /dev/cdrom /var/ftp/centos7