在实际工作环境中,当你需要为几十台甚至上百台电脑装Linux系统的时候,如果要一台一台去装,不仅效率低下,而且也浪费了我们的时间,pxe的出现解决了这个问题,那么关于这个技术,我们可以好好的聊一聊。
什么时PXE?
PXE(预启动执行环境)是英特尔为Linux系统专门开发的技术,能够实现高效批量自动的解决装机问题。它解决了安装需要介质的麻烦,只需要一根网线即可完成。
该技术的优点:
1,装机规模化:该技术可以根据网络中的带宽,决定要同时装多少台主机。
2,装机自动化:除了按下电源以外,直到安装结束,均不需要人去管理,安装过程中可以做其他事。
3,远程安装:不必亲自跑到主机前,只需要搭建起PXE服务器等待主机连接即可。
搭建pxe服务器
前提条件:1,客户端的网卡支持pxe协议,并且主板支持网络引导
2,网络中得有一台dhcp服务器为客户端分配IP地址
3,pxe服务端需要有安装所需的各种数据。
安装思路:由于安装过程牵扯到多个服务,因此我按照系统安装寻找的服务顺序进行操作。
无人自动安装的前提是pex能进入到人机交互安装界面,因此要先实现pxe装机,在进行无人自动安装。
安装过程:
需要添加防火墙策略,或者关闭防火墙,以及关闭内核安全机制!!!
(1)dhcp服务:为了客户端主机能分配到IP地址,从而进行网络通信就需要该服务,它同时也指出pxe服务器的位置,以及pxe引导程序的名称。具体命令如下:
[root@localhost ~]# yum -y install dhcp 安装服务
[root@localhost ~]# vi /etc/dhcp/dhcpd.conf 打开dhcp配置文件添加如下内容
subnet 192.168.10.0 netmask 255.255.255.0 { 子网声明部分
range 192.168.10.100 192.168.10.200; 地址池
next-server 192.168.10.202; pxe服务IP地址
filename "pxelinux.0"; pxe引导程序
}
关于dhcp部分不明白的可看我往期文章http://t.csdnimg.cn/v9EmW
关于dhcp的服务就已经配置完毕。
(2)TFTP服务:(简单文件传输协议)该服务为客户端提供了四个文件缺一不可,该服务的名称为tftp-server,安装后进入到/var/lib/tftpboot/在该目录下要存放四个文件,获取要拷贝到本目录下分别是:
1,初始化镜像文件:该文件提供让内核读取硬盘或引导设备的功能,如果挂载了系统光盘,则该文件位于光盘根目录下images/pxeboot下,。文件名称“initrd.img”
2,内核文件:该文件用于加载启动环境,包括寻找mbr引导记录等。该文件与1号文件位置相同。文件名称“vmlinuz”
3,pxe引导程序:该文件默认没有需要安装软件syslinux,安装完毕后该文件是/usr/share/syslinux/pexlinux.0,将该文件拷贝。
4,pxe引导程序的配置文件:该文件需要创建目录pxelinux.cfg在该目录下创建文件default文件,注意文件和目录名称固定不能变!!!添加如下内容。
default auto 默认装系统的方式
prompt 1 需要人交互
label auto 定义auto方式
kernel vmlinuz 指定内核
append initrd=initrd.img 指定初始化镜像
method=ftp://192.168.10.201/myiso 指定系统镜像文件目录的位置在pxe服务器上,该IP为我pxe服务器的地址
在到/etc/xinetd.d/tftp 下修改一个参数
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = yes 将该选项改为no,表示启用tftp服务
per_source = 11
cps = 100 2
flags = IPv4
}
至此四个文件都有tftp的配置也已经结束了。
(3)FTP服务:该服务提供了操作系统的镜像
安装vsftpd服务,在/var/ftp下创建名为myiso的目录,名称随意但要与上一步中的method指定的一致,不一致会导致找不到操作系统文件,
在该目录下可以将系统光盘的全部文件都拷贝到该目录,因为每个人的光盘挂载路径不一样这里就不再演示。
拷贝完毕后服务的配置都已经确定完毕。
很重要的一点!!!挨个把服务启动起来 dhcpd tftp vsftpd
到这里就可以用没装过系统的主机验证是否成功。
无人值守自动安装
如果pxe装机没有问题的话就可以进行自动安装的操作了
该技术需要三个点:
1,修改yum仓库文件。路径为/etc/yum.repos.d/修改其中光盘的文件默认为CentOS-Media.repo,
将设备标识修改为development如下:
[development] 重点是该标识,为后面自动安装做铺垫
name=CentOS-$releasever - Media
baseurl=file:///media/cdrom/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
2,安装system-config-kickstart软件
安装后用该软件包的名称执行命令,也就是system-config-kickstart,需要注意前提该服务需要服务器主机有桌面环境才能正常运行。否则会报错。运行后会出现如下界面
按照提示设置相关参数即可。列出几个必须要设置的参数,其他根据需要设置即可。
标识1:该项要填pxe服务器的IP地址,模板ftp://0.0.0.0
标识2:该项要填操作系统镜像文件目录的名称,例如我的myiso
设置为安装新引导装载程序,也可以启用grub密码增加系统安全性,可参考我的往期文章,http://t.csdnimg.cn/nxQFG
可以根据需要选择清不清除主引导记录,没安装系统的不需要管,重装系统的需要参考,在下方可以设置分区非常方便。
如果该选项右侧为一片空白,原因是yum仓库中的设备标识不是development。修改重载kickstart服务即可。
参数设置完毕后保存,默认文件名为ks.cfg,不需要改变,存放路径为与操作系统镜像文件目录同一级即可,例如我的myiso同级即可。
在文件系统中寻找路径。
最后需要修改/var/lib/tftpboot/pxelinux.cfg/default文件,添加如下内容:
default auto 默认装系统的方式
prompt 1 需要人交互
label auto 定义auto方式
kernel vmlinuz 指定内核
append ks=ftp://pxe服务器IP地址/ks.cfg 添加该行指明应答文件位置
initrd=initrd.img 指定初始化镜像
method=ftp://服务器IP地址/myiso 指定系统镜像文件目录的位置
到此重启tftp服务,再去进行测试就能够实现自动化安装,只需要开启电源即可。
至此呢所有的过程就已经介绍完毕。有任何疑问下方留言,看到会及时答复。