首页 > 代码库 > pxe结合kickstart文件实现全自动化安装

pxe结合kickstart文件实现全自动化安装

PXE是什么?

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用tftptrivial file transfer protocol)或mtftpmulticast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户?)基本软件设置,从而引导预先安装在服务器的终端操作系统。PXE可以引导多种操作系统。如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux等。


什么情形使用PXE系统安装?

在实际工作中,我们经常会遇到这样的情况:想要安装Linux但是计算机没有光驱,或者是有大批量的计算机需要同时安装Linux,如果通过光驱的方式一个个安装,不仅效率低,也不利于维护。这是时候你就需要PXE的强大功能了。


硬件支持:

网卡必须可通过网络引导启动, 具体实现的是可获取到来自dhcp服务器上分配的ip地址, 并且可充当tftp服务端的客户端,去加载内核等文件。 早期网卡可能默认不支持这种功能, 但是现在几乎所有的网卡都支持这个功能。 


需要搭建服务:

1>. dhcp服务器

2>. tftp-server 服务器

3>. ftp或则httpd服务 (用来提供yum仓库、kickstart文件)


下面通过pxe结合kickstart文件实现真正的全自动化安装centos7操作系统

实验拓扑图:

技术分享

注意: dhcp、tftp、ftp(httpd)服务器可以放在不同服务器之上,这里简化。 


流程图:

技术分享

实验步骤:

搭建dhcp服务器:


1>. 修改配置文件/etc/dhcp/dhcpd.conf

技术分享


2>. 启动dhcp服务器

systemctl start dhcpd


注意: dhcp具体细节可查看博客:http://9280078.blog.51cto.com/9270078/1870055

 


搭建tftp-server服务器。

1>. 安装程序包:

yum install -y tftp-server


2>. tftp-server生成的配置文件。

/etc/xinetd.d/tftp
/usr/lib/systemd/system/tftp.service
/usr/lib/systemd/system/tftp.socket
/usr/sbin/in.tftpd
/usr/share/doc/tftp-server-5.2
/usr/share/doc/tftp-server-5.2/CHANGES
/usr/share/doc/tftp-server-5.2/README
/usr/share/doc/tftp-server-5.2/README.security
/usr/share/man/man8/in.tftpd.8.gz
/usr/share/man/man8/tftpd.8.gz
/var/lib/tftpboot


3>. 提供特定的内核、initrd.img、bootloader等文件。

提供bootloader文件: pxelinux.0  chain.c32  mboot.c32  memdisk  menu.c32

以上这些文件由syslinux程序包提供。

yum install -y syslinux , 则可生成以上文件。


vmlinuz (内核文件) 、initrd.img则由光盘目录下的images/pxeboot/目录下的文件提供。


[root@node1 tftpboot]# ls /var/lib/tftpboot/
chain.c32  initrd.img  mboot.c32  memdisk  menu.c32  pxelinux.0  pxelinux.cfg  vmlinuz


4>. 在/var/lib/tftpboot/目录下, 创建pxelinux.cfg目录

 mkdir /var/lib/tftpboot/pxelinux.cfg
 vim /var/lib/tftpboot/pxelinux.cfg/default

技术分享


5>. 启动tfpd.server服务

]# systemctl start tftp.socket


搭建ftp服务器, 提供安装源(类似于光盘)、kickstart文件。 

1>. 搭建ftp-server服务器。

]# yum install -y vsftpd


2>. 将光盘文件挂载至/var/ftp/pub/Centos7目录下。

 mount /dev/cdrom /var/ftp/pub/Centos7/


3>. 将kickstart文件复制到/var/ftp/pub/目录下。

 cp centos7.cfg /var/ftp/pub/

4>. 启动ftp服务器。

]# systemctl start vsftpd

 

kickstart文件如何生成?

在图形化界面下安装system-config-kickstart工具包, 执行system-config-kickstart命令打开图形化配置界面。

如下:

技术分享



客户端测试;(node2节点)

1>. 选择网络引导.

技术分享


2>. 

技术分享


3>. 后面测试结果正确,可实现自动化安装。 

pxe结合kickstart文件实现全自动化安装