搭建pxe服务器

匿名 (未验证) 提交于 2019-12-02 23:40:02

pxe 无人值守安装:
通过网络方式自动进行系统安装

dhcp+tftp+vsftpd/http/nfs+kickstart 

1.应用场景
1)需要进行大批量的部署操作系统(批量化)
2)pc机或者是没有光驱的服务器
3)需要经常更换或者重装linux操作系统

2.需求
1)网络畅通并且有一台发布安装源的服务器
2)需要被安装系统的机器支持网络引导,有pxe芯片

3.服务器的需求
1)dhcp 用来给客户端分配ip
2)tftp 用来发布内核和驱动文件 vmlinuz initrd.img
3)配置安装启动文件 ks.cfg
kickstart
4)vsftpd 提供镜像和ks.cfg文件
vsftpd nfs http

4.原理
1)服务器端通过dhcp服务给客户端分配ip地址,并且告诉客户端谁是tftp服务器以及引导程序文件的名字
2)客户端找到tftp服务器获取引导程序文件、内核文件集驱动文件
3)服务器端通过http或者vsftpd给客户端提供安装源(光盘镜像 iso)
4)服务器端通过kickstart文件ks.cfg,实现客户端的无人值守安装

搭建pxe服务器

确保已完成以下工作:
1.已关闭防火墙
2.已关闭selinux
3.已关闭NetworkManager
4.已配置固定的ip地址
5.yum配置好
6.网络连接方式改为host-only

环境:
服务器 ip:192.168.1.253 主机名:pxe.uplooking.com

1.配置DHCP 端口:udp/67
1)安装软件
[root@pxe ~]# yum install dhcp -y
2)查看软件产生的文件
[root@pxe ~]# rpm -ql dhcp
/etc/dhcp //配置文件目录
/etc/dhcp/dhcpd.conf //配置文件
/etc/rc.d/init.d/dhcpd //启动脚本
/etc/sysconfig/dhcpd //启动脚本的配置文件
/usr/sbin/dhcpd //守护进程
/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample //配置文件的模版
/var/lib/dhcpd/dhcpd.leases //租约信息
3)配置
[root@pxe ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y

[root@pxe ~]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 { //网段和掩码
range 192.168.1.100 192.168.1.200; //地址池
option routers 192.168.1.254; //网关
option broadcast-address 192.168.1.255; //广播地址
default-lease-time 600; //默认租约
max-lease-time 7200; //最大租约
next-server 192.168.1.253; //指定tftp服务器的ip
filename “pxelinux.0”; //指定需要加载引导文件的名字
}

4)启动服务
[root@pxe ~]# /etc/init.d/dhcpd restart
正在启动 dhcpd: [确定]

5)查看服务是否被监听
[root@pxe ~]# netstat -tulnp | grep dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 5224/dhcpd

2.配置tftp 端口:udp/69
1)安装软件
[root@pxe ~]#yum install tftp-server -y //该服务是由xinetd进程管理

2)配置
[root@pxe ~]#vim /etc/xinetd.d/tftp
server_args =-s /var/lib/tftpboot -c //tftp的主目录,类似于vsftpd的/var/ftp目录 -c 开启上传功能
disable =no //是否启用服务,默认不启用 no启用 yes不启用

3)启动服务
[root@pxe ~]# /etc/init.d/xinetd restart
停止 xinetd: [确定]
正在启动 xinetd: [确定]

4)查看服务是否被监听
[root@pxe ~]# netstat -tulnp | grep xinetd
udp 0 0 0.0.0.0:69 0.0.0.0:* 5397/xinetd

5)将内核和驱动文件和引导文件拷贝到tftp的主目录 vmlinuz initrd.img isolinux.0
查找文件所在位置
[root@pxe ~]# yum provides */pxelinux.0
syslinux-4.02-8.el6.x86_64 : Simple kernel loader which
: boots from a FAT filesystem
Repo : redhat6u5
Matched from:
Filename : /usr/share/syslinux/pxelinux.0

[root@pxe ~]# yum install syslinux -y

将引导文件拷贝到tftp的主目录下
[root@pxe ~]# cp -a /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

[root@pxe ~]# cd /mnt/redhat/isolinux

将内核和驱动 菜单文件拷贝到tftp的主目录下 (文件在镜像内) /mnt/redhat目录是镜像的挂载点
[root@pxe ~]# cd /mnt/redhat/isolinux
[root@pxe ~]# cp -a vmlinuz initrd.img vesamenu.c32 /var/lib/tftpboot/

定义安装选项及ks.cfg文件位置
[root@pxe ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@pxe ~]# cp -a /mnt/redhat/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@pxe ~]# cd /var/lib/tftpboot/pxelinux.cfg
[root@pxe pxelinux.cfg]# vim default
22 append initrd=initrd.img ks=ftp://192.168.1.253/ks.cfg

确认
[root@pxe ~]# yum install tree -y
[root@pxe tftpboot]# cd /var/lib/tftpboot/
[root@pxe tftpboot]# tree
.
├―― initrd.img
├―― pxelinux.0
├―― pxelinux.cfg
│ └―― default
├―― vesamenu.c32
└―― vmlinuz

1 directory, 5 files

3.配置vsftpd
1)安装软件
[root@pxe ~]# yum install vsftpd -y

2)启动服务
[root@pxe ~]# /etc/init.d/vsftpd restart
关闭 vsftpd: [失败]
为 vsftpd 启动 vsftpd: [确定]

3)查看服务是否被监听
[root@pxe ~]# netstat -tulnp | grep vsftpd
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 5877/vsftpd

挂载镜像
[root@pxe ~]# vim /etc/fstab
/dev/sr0 /var/ftp/pub iso9660 defaults 0 0

[root@pxe ~]# mount -a

查看镜像是否挂载
[root@pxe ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 3.0G 14G 19% /
tmpfs 427M 224K 427M 1% /dev/shm
/dev/sda1 194M 34M 151M 19% /boot
/dev/sr0 3.6G 3.6G 0 100% /media/RHEL_6.5 x86_64 Disc 1
/dev/sr0 3.6G 3.6G 0 100% /mnt/redhat
/dev/sr0 3.6G 3.6G 0 100% /var/ftp/pub

5.配置kickstart Redhat提供一个安装的脚本工具,填好以后保存,默认会生成一个ks.cfg文件
[root@pxe ~]# yum install system-config-kickstart -y

[root@pxe ~]# system-config-kickstart
图形化操作




cd /mnt/redhat/isolinux/
cp boot.msg splash.jpg /var/lib/tftpboot

pxe流程图

client----->DHCP server-------------------------->tftp-server---------------->vsftpd
ip地址 next-server tftp服务器地址 pxelinux.0 ks.cfg
filename “pxelinux.0” vmlinuz pub
initrd.img

vesamenu.c32

文章来源: https://blog.csdn.net/weixin_45177186/article/details/91416342
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!