文章目录
部署PXE远程安装服务
一、PXE
1、系统装机的三种引导方式
启动操作系统
1.硬盘
2.光驱(u盘)
3.网络启动pxe
2、系统安装过程
- 加载boot loader
Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境
- 加载启动安装菜单
- 加载内核和initrd系统(文件才能使用文件)
- 加载根系统
- 运行anaconda的安装向导
Linux安装光盘的安装相关文件
- 在系统光盘的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系统,文件系统驱动等) |
3、PXE简介
PXE:预启动执行环境,在操作系统之前运行)是由Intel公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。预启动执行环境,在操作系统之前运行。
相关软件包 | 说明 |
---|---|
dhcp | 实现地址自动分配 |
ftp | 将安装文件传输给客户机(共享目录) |
xinetd | 新一代网络守护进程服务程序,管理轻量级的Internet服务 |
tftp | 简单文件传输协议udp协议,服务端和客户端之间进行简单文件传输(小文件),依赖于xinetd管理,端口号69 |
4、PXE原理
-
网卡需要查找相关的dhcp服务器(获取地址时间)
-
找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
-
网卡使用tftp客户端把引导程序加载到内存中来
-
bios执行引导程序
-
引导程序会去TFTP去查找配置文件
-
根据配置文件去引导安装系统
-
系统安装过程
pxe批量部署的优点
- 规模化:同时装配多台服务器
- 自动化:安装系统、配置各种服务
- 远程实现:不需要光盘、U盘等安装介质
二、PXE安装系统的过程
- 服务端
- 运行DHCP服务,用来分配地址,定位引导程序。
- 运行TFTP服务,提供引导程序下载。
- 客户端
- 网卡支持PXE协议
- 主板支持网络引导
1、需要的四个文件
- pxelinux.0:引导程序。(来自syslinux程序)
- pxelinux.cfg :存放default:引导程序的配置文件。(需要手写,可参考光盘 isolinux 目录下的 isolinux.cfg 文件)
- vmlinuz:内核文件。(从光盘中获取,位于 isolinux 目录下)
- initrd.img: 系统启动镜像文件。(从光盘中获取,位于 isolinux 目录下)
2、PXE安装系统的命令格式过程
##服务端:
yum install dhcp vsftpd tftp-server.x86_64 syslinux -y #安装需要的软件
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf #复制配置文件模板
vim /etc/dhcp/dhcpd.conf #编辑配置文件
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.20 192.168.10.30;
option routers 192.168.10.2;
next-server 192.168.10.11;
filename "pxelinux.0";
}
#第一行表示分配的子网和子网掩码
#第二行表示分配的ip地址的范围
#第三行表示网关
#第四行表示客户端从ip地址192.168.10.11的服务器找引导文件
#第五行表示指定启动文件
rpm -ql tftp-server #查看tftp-server安装包的所有文件
vim /etc/xinetd.d/tftp #编辑配置文件
disable = no
#将14行的yes改为no
cd /var/lib/tftpboot #切换目录
mount /dev/sr0 /mnt #挂载
ls /mnt/isolinux/ #查看/mnt/isolinux/目录下的文件
cp /mnt/isolinux/vmlinuz /mnt/isolinux/initrd.img . #将需要的vmlinuz、initrd.img文件复制到当前目录
rpm -ql syslinux |grep pxelinux.0 #查找pxelinux.0的文件位置
cp /usr/share/syslinux/pxelinux.0 . #将pxelinux.0文件复制到当前目录
mkdir pxelinux.cfg #建立文件夹
cd pxelinux.cfg/ #切换目录
vim default #编辑配置文件
default linux #指定默认的启动标题
timeout 600 #等待时间
label linux #引导标签
kernel vmlinuz #指定内核映像文件
append initrd=initrd.img method=ftp://192.168.10.11/centos7 #启动参数
tree #查看当前目录下的文件
mkdir /var/ftp/centos7 -p #建立文件夹(在/var/lib/tftpboot目录下新建)
mount /dev/sr0 /var/ftp/centos7 #挂载
systemctl start tftp #开启服务
systemctl start vsftpd #开启服务
systemctl start dhcpd #开启服务
##客户端:安装系统的客户机内存最少2G,否则配置的文件运行不起来
3、PXE安装系统的过程(图文详解)
- 服务端
- 客户端
获取到安装文件(半自动化),剩下步骤还需要手动安装
4、 kickstart 无人值守安装(一键安装)
- kickstart文件主要包括三个部分:命令段,程序包段,脚本段
4.1 命令段
- 指明各种安装前配置,如键盘类型等
命令段中的常见命令
常见命令 | 说明 |
---|---|
keyboard | 设定键盘类型 |
lang | 语言类型 |
zerombr | 清除mbr |
clearpart | 清除分区 |
part | 创建分区 |
rootpw | 指明root的密码 |
timezone | 时区 |
text | 文本安装界面 |
network | 指定网络设置 |
firewall | 设置防火墙设置 |
selinux | 设置selinux设置 |
reboot | 安装完自动重启 |
user | 安装完成后为系统创建新用户 |
url | 指明安装源 |
4.2 程序包段
-
指明要安装的程序包组或程序包,不安装的程序包等
-
%packages
-
@^environment group: 指定环境包组,如:@^minimal-environment
-
@group_name
-
package
-
-package
-
%end
4.3 脚本段
-
%pre:安装前脚本
-
%post:安装后脚本
4.4 命令格式
##服务端:
yum install system-config-kickstart.noarch -y #安装kickstart软件包
服务端后续过程是图形界面,详细情况见下面图文详解,完成后将引导程序写入配置文件
vim pxelinux.cfg/default #修改配置文件
default linux
timeout 600
label linux
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.10.11/centos7
ks=ftp://192.168.10.11/ks.cfg
#将引导程序写入配置文件
##客户端:启动客户机,不需要进行后续操作
4.5 kickstart 无人值守安装(图文详解)
- 服务端
- 客户端(重新启动客户机,不需要进行后续操作)