PXE服务简介
大家应该都会使用光盘镜像或U盘进行安装操作系统,但在生产环境中遇到上百台的服务器时再使用人工一台一台安装系统就不太现实了,这之后PXE服务就应运而生了。
启动环境
服务端
运行DHCP服务,用来分配地址、定位引导程序
运行TFTP服务,提供引导程序下载
客户端
网卡支持PXE协议
主板支持网络引导
PXE需要的服务和文件
三个服务
1;DHCP服务:让客户端获取IP地址,能主动联网PXE服务器,配置指向TFTP服务
2;TFTP服务:简单文件系统,UDP协议端口号69,快速加载引导程序,默认配置文件指向FTP镜像位置
3;FTP服务:文件系统镜像存放,TCP21端口连接服务UDP20端口数据传输
tftp四大文件
1:default:需要先创建pxelinux.cfg目录,引导配置文件被加载
2:vmlinuz:压缩内核,在default中被定义最先被加载
3:initrd.img:初始化镜像文件,在default被定义第二个被加载
4:pxelinux.0:引导程序,需要安装syslinux包才会有,在dhcp配置文件中被定义
基本部署过程
1:安装并启用TFTP服务
2:提供Linux内核、PXE引导程序等
3:安装并启用DHCP服务
4:配置启动菜单
详细搭建步骤
安装dhcp服务
[root@localhost network-scripts]# yum -y install dhcp
1
6、编辑dhcp服务配置文件
## dhcp配置文件存放在:/etc/dhcp/dhcpd.conf中,但是打开会发现让你去另一个目录中找配置文件模板,所以要复制一份过来
[root@localhost network-scripts]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf ## 复制模板并替换原配置文件
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? yes ## 输入yes替换
[root@localhost dhcp]# vi /etc/dhcp/dhcpd.conf ## 编辑配置文件
修改以下内容:
# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.
subnet 192.168.106.0 netmask 255.255.255.0 { ## 网段及子网掩码
range 192.168.106.150 192.168.106.200; ##分配IP地址池
option routers 192.168.10.100; ## 网关
option domain-name-servers 192.168.106.100; ##DNS服务器地址
next-server 192.168.106.100; ##
filename "pxelinux.0"; ##
}
7、dhcp配置完成,下面安装tftp及引导程序
[root@localhost network-scripts]# yum -y install tftp-server
[root@localhost network-scripts]# yum -y install syslinux
8、编辑tftp服务配置文件
[root@localhost network-scripts]# vi /etc/xinetd.d/tftp
将disabled=yes改为no
9、将pxelinux.0引导程序拷贝的TFTP站点目录下
[root@localhost xinetd.d]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
10、安装VSFTP服务
[root@localhost xinetd.d]# yum -y install vsftpd
10、进入ftp站点目录,新建挂载目录,然后将光盘镜像挂载到新建的目录中
[root@localhost xinetd.d]# cd /var/ftp/
[root@localhost ftp]# mkdir centos7
[root@localhost ftp]# mount /dev/cdrom /var/ftp/centos7/
ps:如果光盘之前已经挂载到其他地方,可以使用umount命令对其进行卸载后再挂载
11、进入光盘镜像中,将其中的压缩内核与初始化镜像文件拷贝到TFTP站点目录中
[root@localhost ftp]# cd /var/ftp/centos7/images/pxeboot/
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/
12、进入TFTP站点目录,新建一个引导配置文件存放目录,进入该目录并新建一个名为default的配置文件,编辑该文件
[root@localhost pxeboot]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# mkdir pxelinux.cfg
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# vi default
## 下入以下内容:
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.106.100/centos7
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.106.100/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.106.100/centos7
## 编辑完成后保存退出
13、开启服务前关闭系统核心防护及防火墙
[root@localhost pxelinux.cfg]# setenforce 0
[root@localhost pxelinux.cfg]# systemctl stop firewalld
14、启动三项服务(DHCP、TFTP、FTP)
[root@localhost pxelinux.cfg]# systemctl start dhcpd
[root@localhost pxelinux.cfg]# systemctl start tftp
[root@localhost pxelinux.cfg]# systemctl start vsftpd
15、返回需要安装操作系统的客户机,单击“开启此虚拟机”按钮
机器客户机首先会通过dhcp服务获取IP,然后通过tftp与ftp加载内核与镜像进行安装,稍后就会弹出安装界面了
如果几台机器还好,但如果是成百上千的机器根本不可能让人工去手动操作安装系统,所以这个时候需要用到Kickstart(无人值守)来自动部署
16、在服务器上安装Kickstart服务软件
[root@localhost pxelinux.cfg]# yum -y install system-config-kickstart
17、在图形化界面左上角点击“应用程序”按钮,选择“系统工具”中的Kickstart打开软件
18、软件界面非常简洁,只需要简单配置即可
①基本配置(设置默认语言、时区,勾选给root密码加密,与安装后重启)
②安装方法(单击FTP,配置FTP服务器IP并设置FTP目录)
③引导装载程序选项(单击安装新引导装载程序、在主引导记录中安装引导装载程序)
⑥防火墙配置(请选择禁用SELinux,是否禁用防火墙根据实际情况而定)
⑦安装后脚本(勾选使用解释程序,并输入/bin/bash)
配置完成后保存文件到桌面即可
19、编辑服务器系统家目录下的配置文件:vi anaconda-ks.cfg ,将其中安装的所有软件包列表复制,粘贴到刚才生成的ks.cfg配置文件中
%packages
@^gnome-desktop-environment
@backup-client
@base
@compat-libraries
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-apps
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-applications
@internet-browser
@java-platform
@legacy-x
@multimedia
@network-file-system-client
@networkmanager-submodules
@office-suite
@print-client
@security-tools
@smart-card
@system-admin-tools
@x11
chrony
kexec-tools
%end
[root@localhost ~]# vim ks.cfg
19、因为我们创建了用户配置文件,所以要修改default配置文件让其识别到ks.cfg文件
编辑default文件,在其中添加以下内容
[root@localhost pxelinux.cfg]# vi /var/lib/tftpboot/pxelinux.cfg/default
添加内容:
append initrd=initrd.img method=ftp://192.168.106.100/centos7 ks=ftp://192.168.106.100/ks.cfg
修改完后将之前生成的ks.cfg用户配置文件移动到ftp目录中
[root@localhost ~]# cd 桌面/ && mv ks.cfg /var/ftp/
20、重新开启客户机,查看是否能实现自动安装系统
转载:https://blog.csdn.net/weixin_47151717/article/details/108138085