PXE远程服务器(192.168.1.1)所需准备:
- 安装源(系统盘文件);
- TFTP服务;
- DHCP服务;
- Linux内核;
- 能够向客户机裸机发送PXE引导程序;
- 启动菜单及无人应答文件等。
客户端要求:
- 客户端的网卡支持PXE协议,且主板支持网络引导(现在多数都支持);
- 设置BIOS允许从Network或LAN启动;
一、搭建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 a.repo
[yum]
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
}
[root@localhost yum.repos.d]# systemctl start tftp #启动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/
5、准备PXE引导程序:
[root@localhost pxeboot]# yum -y install syslinux #安装引导程序
[root@localhost pxeboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
6、配置启动菜单(典型的和无人值守安装的启动菜单根据实际需求二选一配置即可):
[root@localhost pxeboot]# mkdir /var/lib/tftpboot/pxelinux.cfg
①、典型的启动菜单,无法实现无人值守安装:
[root@localhost pxeboot]# vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.1.1/centos7
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.1.1/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.1.1/centos7
②、无人值守安装的启动菜单:
[root@localhost pxeboot]# vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 0
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.1.1/centos7 ks=ftp:/
/192.168.1.1/ks.cfg
在上面两种启动菜单,我这里配置的是无人值守安装,若选择典型的启动菜单,那么接下来的操作有很多就是不必要的了,只要安装上DHCP服务器即可部署系统了。
7、安装并启用DHCP服务器(DHCP服务安装后有一个模板文件,若不熟悉,可以参考: https://blog.51cto.com/14154700/2353971):
[root@localhost pxeboot]# yum -y install dhcp
[root@localhost pxeboot]# vim /etc/dhcp/dhcpd.conf
...........................
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.1 192.168.1.200;
option domain-name-servers 8.8.8.8;
option domain-name "internal.example.org";
option routers 192.168.1.254;
option broadcast-address 192.168.1.255;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.1.1; #指定TFTP服务器的地址
filename "pxelinux.0"; #指定PXE引导程序的文件名
}
[root@localhost pxeboot]# systemctl start dhcpd
[root@localhost pxeboot]# systemctl enable dhcpd
8、准备安装应答文件:
在centos 7 系统中如果安装了system-config-kickstart工具后,可通过图形化向导工具来配置安装应答文件。如果大佬对自动应答文件的配置比较熟悉,也可以直接编辑centos 7 安装后自动创建的应答文件(/root/anaconda-ks.cfg),根据需要适当修改后使用(我还是老老实实的使用图形化吧):
[root@localhost pxeboot]# yum -y install system-config-kickstart #安装所需工具
①、打开图形化程序:
②、配置安装应答参数:
③、由于ftp服务默认允许匿名访问,所以不用指定用户名和密码:
④、引导装载程序:
、分区信息(根据实际需求选择合适的硬盘分区方案):
⑤、网络配置及防火墙:
⑥、安装后脚本:
(注意:最后验证时,发现“\n”换行符没有生效,So.....你们自己去研究脚本怎么写吧!)
若想在系统安装完成后,执行一些操作,可以参考以下(我这里写了一个配置yum仓库的脚本):
⑦、保存应答文件:
保存后的应答文件:
[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$MgF1wIfb$oADHgYO7I0RbKmkuEVML9/
# Use network installation
url --url="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=none
# 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
echo -e "[base]\nbaseurl=ftp://192.168.1.1/centos7\ngpgcheck=0" aa.repo
%end
不过上面的配置文件还差点东西,需要在配置文件末尾继续写入三行,以此来选择最小安装:
%packages
@^minimal
%end
写好后,保存退出即可。
8、将自动应答文件复制到指定目录(在之前的引导菜单指定的“ks=”项的路径):
[root@localhost ~]# cp /root/ks.cfg /var/ftp/
10、OK,客户机开机,验证效果(耐心等待完成即可):
安装成功: