过程:通过网卡启动 将准备的好的 4大文件 下载本地内存 ,然后利用kikstart 应答文件 完成一键装机
一,pxe 实现的硬件条件
1.BIOS支持
2.网卡支持(现在基本都已支持)
3.需要在bios中开启开关,服务器一般没打开(bmc界面里打开)
4.网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置 网卡自带DHCP功能 dhcp 指明分配的ip地址
vsftpd tftp
5.服务器通过 tftp服务(简单文件传输协议)来提供系统内核和引导镜像的下载 udp()协议 网卡自带这个功能(不支持其他的远程共享服务)
二,pxe 过程
1.网卡需要查找相关的dhcp服务器(获取地址时间)
2.找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
3.网卡使用tftp客户端吧引导程序加载到内存中来
4.bios执行引导程序
5.引导程序会去TFTP去查找配置文件
6.根据配置文件去引导安装系统
7.系统安装过程
dhcp 服务机 给ip地址 和 tftp服务机的地址
tftp 服务机 给引导文件(pxelinux.0) 和内核(vmlinuz) 和虚拟文件系统(initrd.img)
http服务机 给 ks配置文件(kickstart) 和 安装包
三,搭建过程中服务详解
PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能 够向客户机裸机发送 PXE 引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。
3.1TFTP服务
TFTP(简单文件传输协议):内核和引导文件
是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP69端口。
3.2 vsftp:安装系统镜像文件获取方式
可以使用http ftp等方式,ftp文件传输的一种。
3.3 syslinux
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。
pxelinux.0 启动pxe pxe可以支持
3.4 DHCP服务
四,pxe 优点
1.规模化:同时装配多台服务器
2.自动化:安装系统、配置各种服务
3.远程实现:不需要光盘、U盘等安装介质
五,操作过程
1, dhcp 服务机 给ip地址 和 tftp服务机的地址
2, tftp 服务机 给引导文件(pxelinux.0) 和内核(vmlinuz) 和虚拟文件系统(initrd.img 小型linux 操作系统 提供驱动)
3, http服务机 给 ks配置文件(kickstart) 和 安装包
大概过程
- 分配给同一局域网内新加机器的地址(配置文件) dhcp 分配地址 指明tftp 服务器的地址
- tftp服务端开启 udp 配置 默认关闭
- 安装syslinux 取得 pxelinux.0 文件
- 安装vsftpd服务挂载软件安装源(mount /dev/sr0 /var/ftp/centos7)
- 将四大文件拷入 (/var/lib/tftpboot )
- initrd.img
- pxelinux.0 (类似grub)
- pxelinux.cfg/default (手写)
- vmlinuz
6.将服务开启,关闭防火墙,selinux
六,系统安装过程
1,加载boot loader
Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境
2,加载启动安装菜单
3,加载内核和initrd系统(文件才能使用文件)
/boot /initrd: 是小型linux 作用:提供xfs文件系统 驱动 这样才能读懂 grub.cfg
4,加载根系统()
5,运行anaconda的安装向导
anaconda-ks.cfg 这就是应答文件 记录安装过程(你怎么安装这个操作系统的)
这个是要手写的,但是也有图形化界面,点一点生成。生产环境可以先在自己虚拟机生成,再复制过来
七,光盘里 和安装系统相关的文件
我们把光盘 挂载到 /mnt 查看光盘里的文件,isolinux这个文件夹 里装的是安装系统需要的东西
isolinux文件夹里面有:
- boot.cat: 相当于grub的第一阶段
- isolinux.bin:光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目
- isolinux.cfg:启动菜单的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件
- vesamenu.c32:是光盘启动后的启动菜单图形界面,也属于SYSLINUX项目,menu.c32提供纯文本的菜单
- memtest:内存检测程序
- splash.png:光盘启动菜单界面的背景图
- vmlinuz:是内核映像
- initrd.img:ramfs文件(精简版的linux系统,文件系统驱动等
八,PXE高效批量网络装机 过程
总结:先做dhcp服务机 给客户机ip 地址和引导文件的位置
在做tftp 传四大文件(内核 驱动 引导文件 标题启动文件)
再做vsftp 指明安装包
最后做 kickstart 生成应答文件
dhcp相关设置
1,需要的软件有dhcp vsftp tftp-server syslinux 2, 复制dhcp 配置文件的模板
3, 手搓dhcp配置文件名 给那些客户机分配ip地址,并指明客户机去哪里找引导文件
4,启动!dhcpd 服务
tftp-server 相关设置
1,找到tftp-server 相关的配置文件,打开服务
把yes 改成no
2, 找到 tftp-server 的主页面
3,我们需要把四大 文件放 tftp主页面
所以我们先去到 /var/lib/tftpboot
4, 将光盘挂载到/mnt, 因为四大文件都在光盘里 ,我们要拿出来用
5,四大文件在光盘里的 isolinux文件夹下,所以去到这个文件夹
6,内核 和驱动 都一样,直接复制过来
7, 四大文件 内核 和 驱动有了 接下来找引导文件
在我们下的syslinux 里
复制过来
8, 最后还差 标题启动文件
固定格式: 去到 /var/lib/tftpboot/ 创建pxelinux.cfg 的文件夹,去到这个文件夹,手写default
这样 四大文件就齐活了
vsftp 相关设置
tftp把系统装好了,因为tftp 不能传大文件 安装包有很多,不装图形化也要300多个包,接下用vsftp 提供软件, 软件在光盘里
1,把光盘挂载到 vsftp 共享文件夹 /var/ftp/ (先创一个centos7 的文件夹 在标题启动文件里面也有指明 ftp的位置是 /var/ftp/ centos/7 )
2, 启动 vsftp 和tftp.socket
kickstart 相关设置
此时可以说是半自动化,要想全自动化,还需要下载kickstart 软件
1,安装 kickstart 软件
2,手搓一个ks.cfg 的应答文件,当然我们这边装了kickstart 可以图形化界面点一点生成这个文件,保存到 ftp的共享文件夹
3, 图形化点一点
保存到 /var/ftp/
4, 可以设脚本块
固定格式
%post
$end
中间加命令
echo "pa12ss34wd56" | passwd kysw --stdin:免交互设置密码为pa12ss34wd56
5, 再回到标题启动文件 加上 指明ks(指明应答文件位置)
九,Cobbler工具
(一)cobbler工具的特点
Cobbler是一款开源的Linux系统自动化安装部署工具,主要用于简化网络操作系统安装、管理和更新过程。在PXE批量装机环境中,Cobbler起到了关键的作用:
自动化配置服务:Cobbler可以自动配置和管理DHCP、TFTP、DNS等服务,为PXE启动提供所需的环境。
系统镜像管理:它能够管理不同版本的操作系统安装源,包括ISO文件、kickstart或preseed等自动化应答文件,以及内核和initrd映像。
快速部署:只需简单的命令行操作或者Web界面操作,即可快速创建并配置新的PXE引导菜单项,实现一键式批量安装操作系统。
多平台支持:Cobbler不仅支持多种Linux发行版(如Red Hat、CentOS、Ubuntu等),还支持Windows等其他操作系统。
(二)实际操作
1,安装cobbler工具与dhc
obbler工具光盘中是没有软件包的,需要先下载额外源,而后再下载工具
cobbler工具,并不能提供dhcp服务,所以还需要安装dhcp服务
这个时候,我们开启cobblerd、httpd、tftp、dhcpd服务会显示失败,因为有些配置还没有完成
我们可以输入cobbler check命令,检查Cobbler服务器的配置和运行状态
可以看到有好多的信息,那么分析一下这些信息
2.修改配置文件
上面的信息,我们不需要全部修改,只需要操作其中的几个,剩下的,只需要使用cobbler sync命令同步一下即可。
2.1 先修改第8条信息
在打开配置文件之前,首先来生成一个加密密码因为默认安装好的系统root密码为cobbler
开配置文件vim /etc/cobbler/settings
将101行的加密密码替换成自己生成的密码
2.2修改第2条信息
在第278行next_server字段,将回环地址设置成自己的ip地址
2.3 修改第1条信息
在第390行server字段,将回环地址设置成自己的ip地址
将第242行manage_dhcp的值设置为1,表示通过cobbler工具生成dhcp.conf配置文件
将第298行的pxe_just_once的值设置为,表示,如果客户端有系统,则该工具不生效,防止重复安装系统
3,配置dhcp
第28行的next_server与cobbler配置文件中的next_server相对应,所以不需要更改
4.重启服务
重启服务之前使用cobbler sync命令同步一下
看到末尾的TASK COMPLET,而且没有报错信息,就表示成功了
此时再重启一下服务
查看一下dhcp的配置文件
使用tree命令查看一下/var/lib/tftpboot文件
可以看到,它同步了我们需要的信息,不需要我们再去手动配置
5.下载安装文件
现在基本上已经把所有的步骤都做完了,但是还有最重要的一步,下载安装系统需要的文件,从光盘里面下载
首先先挂载光盘
而后使用cobbler import --name=centos-7-x86_64 --path=/mnt --arch=x86_64下载,因为文件较大,所以需要等待一会
这条命令表示将/mnt目录下的所有文件,拷到一个固定目录/var/www/cobbler/ks_mirror/,取一个名字叫做centos-7.7-x86_64
6.客户机验证
还是一样,使用客户机以网络方式启动,会进入下图这样的界面,选择centos-7-x86_64,这就是我们之前拷贝光盘文件时设置的文件名,也可以设置成其它的名字