Linux网络服务——PXE网络批量装机+Kickstart无人值守安装

1 系统安装介绍

1.1 系统装机的三种引导方式

1 硬盘

2 光驱

3 网络

1.2 系统安装过程

  • 加载 boot loader
  • 加载启动安装菜单
  • 加载内核和initrd系统
  • 加载根系统
  • 运行anaconda的安装向导

2 PXE介绍

2.1 什么是PXE

PXE( Preboot eXecution Environment,预启动执行环境 )是由Inter公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或整个操作系统。

PXE是通过网卡引导启动。

2.2 PXE服务优点

1 规模化:同时装配多台服务器,无需每一台单独安装操作系统;

2 自动化:实现服务器的自动安装及自动配置各种服务;

3 远程实现:不需要光盘、U盘等安装介质,方便快捷的同时又可以保障服务器安全。

2.3 搭建PXE网络体系所需条件

① 客户机

  • 客户机的网卡要支持PXE协议(集成BOOTROM芯片)。
  • 网卡自带DHCP服务和TFTP服务。
  • 主板支持网络引导。有一些需在BIOS设置中允许从 Network 或 LAN 启动即可。

② 服务端

  • 配置 DHCP 服务器 :为客户机自动分配地址、指定引导文件位置(指明TFTP服务器地址)。
  • 服务器要开启 TFTP 服务(简单文件传输协议):用来提供系统内核和引导镜像文件的下载。
  • 安装软件包syslinux :提供PXE引导程序。
  • 服务器提供FTP服务(或http) :提供安装源(例如镜像文件系统等)。

2.4 PXE装机需要的四大文件

  • pxelinux.0:引导程序。(来自syslinux程序)

  • default:引导程序的配置文件。(需要手写,可参考光盘 isolinux 目录下的 isolinux.cfg 文件)

  • vmlinuz:内核文件。(从光盘中获取,位于 isolinux 目录下)

  • initrd.img: 系统启动镜像文件。(从光盘中获取,位于 isolinux 目录下)

说明initrd的作用:

  • initrd 的英文含义是 boot loader initialized RAM disk,即由引导程序初始化的RAM磁盘。initrd是在实际根文件系统可用之前挂载到系统中的一个初始根文件系统。initrd与内核绑定在一起, 并作为内核引导过程的一部分进行加载。内核然后会将这个initrd文件作为其阶段引导过程的一部分来加载模块,这样才能在以后的引导过程中使用真正的文 件系统,并挂载实际的根文件系统。根文件系统可以存储在包括IDE、SCSI、USB在内的多种介质上,如果将这些设备的驱动都编译进内核,可以想象内核 会多么庞大、臃肿。所以可以把initrd看做是在启动过程中连接内核与根文件系统的一个桥梁。

2.5 PXE实现过程讲解

  1. 客户机的网卡查找相关的dhcp服务器(获取地址和时间)。
  2. DHCP服务器给客户机分配IP地址和引导程序(boot loader)的地址 ,同时通过offer报文把TFTP服务器的地址发给客户机。
  3. TFTP服务器把引导文件(pxelinux.0)传给客户机。
  4. 客户机将引导程序加载到内存中来。
  5. 引导程序去TFTP服务器中查找配置文件,服务器将配置文件传给客户机。(配置文件中指定客户机使用ftp方式连接服务器获取系统镜像文件)
  6. 服务端安装并启动vsftpd服务,客户机使用ftp服务获取系统镜像文件。

 

 

3 实验:使用PXE和kichstart实现无人值守、批量化自动装机

环境:
1、相同网段:192.168.206.0/24
2、centos7 虚拟机
3、使用的root用户,以/root/ 目录下会存放文件

1、准备好yum仓库,开始安装xinetd 、tftp-server 、dhcp 、syslinux 、vsftpd 、system-config-kickstart (一共6个安装包及其依赖关系)!!!
 

 

 

 

 2、首先去vim /etc/xinetd.d/tftp,把disbale改成no即可(补充:目前wait值为no,是可以多台机器一同装机,此外server_args 值是指定的tftp目录,默认即可)

 

 

 

 

保存后退出

3、关闭防火墙、增强型服务。开启xinetd和tftp服务+开机自行启动

 

 

4、接着我们来搭建DHCP服务,首先是复制/usr/share…中的模板覆盖/etc/dhcp…中的空白配置文件。接着我们vim /etc/dhcp/dhcpd.conf去改模版。要该的有2部分,第一部分是禁用dns动态跟新备注、确定next-server的ip地址(本机pxe服务地址)和文件filename 。第二部分是网段设置,要注意option routers(网关)得是这台机子的ip地址哦。最后保存退出,启动dhcpd服务+开机自启

 

 

 

 

 

 5、pxe机子装上光盘,挂载到mnt,然后去cd /mnt/images/pxeboot目录中,把vmlinuz、initrd.img 这两个镜像、内核文件cp复制去/var/lib/tftpboot/ 中去,这步就完成了。

 

 

 

 

6、下面我们着手来准备pxelinux引导程序(第一步的syslinux已经安装了)
复制这个pxelinux.0 程序去/var/lib/tftpboot/,完成后即可

 

 

7、准备ftp服务(第一步已经安装了vsftpd服务了)
我们先去cd /var/ftp
创建一个centos7目录
之后我们mount /dev/cdrom /var/ftp/centos7 (光盘可以挂载到多个地方)
完成后我们启动vsftpd服务+开机自启动

 

 

8、设置引导启动会话文件default,首先是cd /var/lib/tftpboot
随后我们创建一个pxelinux.cfg目录
vim /var/lib/tftpboot、pxelinux/default 创建这个文件(由于我们是使用kickstart无人值守的,所以就直接在这步添加ks参数了)

保存后退出

 

 

 

 

9、准备kickstart服务
打开方式:
1、可视化桌面左上角:应用程序-系统工具-kickstart
2、字符化界面:system-config-kickstart 召唤出来

 

 

 

 

 

 注意分区的时候:boot、swap、根目录必不可少!

 

 

 

 

 

 脚本设完后我们左上角的文件-保存。我选择保存在本机的/root/中

 

 

10、完成后首先cd ~
会发现多了initial-setup-ks.cfg和ks.cfg文件。我们首先vim initial-setup-ks.cfg,进去后把第二张图的所选部分复制
退出后我们vim ks.cfg,把这个复制的内容贴到ks.cfg的最下面(图三)
保存退出,把ks.cfg复制去/var/ftp目录中。cp /root/ks.cfg /var/ftp/ks.cfg

 

 

 

 

 

 

 

 验证:最后我们将裸机放入与pxe服务器主机同一网段的内网中,开机后即可实现自动化安装操作系统

posted @ 2022-10-22 17:45  原味苦茶  阅读(223)  评论(0编辑  收藏  举报