IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> PXE高效批量网络装机 -> 正文阅读

[系统运维]PXE高效批量网络装机

PXE

原理和概念:

预启动执行环境(Preboot eXecution Environment,PXE)也被称为预执行环境,提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(硬盘)或本地已安装的操作系统。

服务端:运行DHCP服务,用来分配地址,定位引导程序

? 运行TFTP服务,提供引导程序下载

客户端:网卡支持PXE协议

? 主板支持网络引导

优点:

  • 规模化:同时装配多台服务器
  • 自动化:安装系统,配置各种服务
  • 远程实现:不需要光盘,U盘等安装介质

PXE服务的流程

PXE服务器和客户机的工作过程:

1.PXE客户机发出DHCP请求,向DHCP服务器申请IP地址。 
 
2.DHCP服务器响应PXE客户机的请求,自动从IP地址池中分配一个IP地址给PXE客户机,并且告知PXE客户机:TFTP服务器的IP地址和PXE引导程序文件pxelinux.0,默认在TFTP共享目录/var/lib/tftpboot/下
 
3.PXE客户机向TFTP服务器发起获取pxelinux.0引导程序文件的请求。
 
4.TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0文件传输给PXE客户机。
 
5.PXE客户机通过网络来启动到系统安装主界面。
 
6.PXE客户机向文件共享服务器(ftp、http、nfs等)发起获取centos或windows系统安装文件的请求。
 
7.文件共享服务响应PXE客户机的请求,将共享的系统安装文件传输给PXE客户机。

8.PXE客户机进入到安装提示向导界面,用户需要手动来完成系统安装的操作

配置

前提条件:
●客户机的网卡支持 PXE 协议(集成 BOOTROM 芯片),且主板支持网络引导。
●网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置。
●服务器通过 TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。
1)配置双网卡 一个作用是dhcp,一个是使用网络源安装环境包
2)DHCP部署     
3)tftp-server ?服务器通过 TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。
4)syslinux  //用来提供pxe的引导程序
5)xinetd  //用来托管tftp
6)vsftpd   //用来放置安装镜像,通过ftp访问镜像安装
7)kickstart //用来无人值守安装


在服务器上部署一个 YUM 软件仓库。

[root@localhost ~]# mkdir -p /var/ftp/centos7
[root@localhost ~]# mount /dev/cdrom /mnt
[root@localhost ~]# cp -rf /mnt/* /var/ftp/centos7
[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable vsftpd

安装并启用 TFTP 服务
[root@localhost ~]# yum -y install tftp-server
[root@localhost ~]# vi /etc/xinetd.d/tftp
service tftp
{
####省略部分信息
protocol = udp                                            ###TFTP 采用 UDP 传输协议
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot             ###指定 TFTP 根目录
disable = no
####省略部分信息

[root@localhost ~]# systemctl start tftp
[root@localhost ~]# systemctl enable tftp


准备 Linux 内核、初始化镜像文件
[root@localhost ~]#   cd /mnt/images/pxeboot/          ####切换到挂载目录/mntimages/pxeboot/   

[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/  ###两个文件并将其复制到 tftp 服务的根目录下

准备 PXE 引导程序 pxelinux.0由软件包 syslinux 提供
[root@localhost ~]# yum -y install syslinux
[root@localhost pxeboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/


安装并启用 DHCP 服务
由于 PXE 客户机通常是尚未装系统的裸机,因此为了与服务器取得联系并正确下载相关引导文件,需要预先配置好 DHCP 服务来自动分配地址并告知引导文件位置。如 PXE 服务器的 IP 地址为 20.0.0.254, DHCP 地址池为 20.0.0.100~20.0.0.200

[root@localhost ~]# yum -y install dhcp
[root@localhost ~]# vi /etc/dhcp/dhcpd.conf
subnet 20.0.0.0 netmask 255.255.255.0 {
option routers 20.0.0.2;		###这是网关
option subnet-mask 255.255.255.0;
option domain-name "bdqn.com";
option domain-name-servers 20.0.0.254,202.106.0.20;
default-lease-time 21600;
max-lease-time 43200;
range 20.0.0.100 20.0.0.200;
next-server 20.0.0.21;                    #####指定 TFTP 服务器的地址
filename "pxelinux.0";                     ####指定 PXE 引导程序的文件名
}
[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# systemctl enable dhcpd
配置文件中增加了 netx-server 和filename 这两行记录,分别用来指定 TFTP 服务器的地址和 PXE 引导程序的文件名。
配置启动菜单文件
启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载初始化镜像。默认的启动菜单文件为 default,应放置在 tftp 根目录的 pxelinux.cfg 子目录下

[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 1
label auto
	kernel vmlinuz
	append initrd=initrd.img method=ftp://20.0.0.21/centos7
label linux text
	kernel vmlinuz
	append text initrd=initrd.img method=ftp://20.0.0.21/centos7
label linux rescue
	kernel vmlinuz
	append rescue initrd=initrd.img method=ftp://20.0.0.21/centos7
	

上述配置记录中定义了三个引导入口,分别为图形安装(默认)、文本安装、救援模式。其中, prompt 用来设置是否等待用户选择; label 用来定义并分隔启动项; kernel 和 append用来定义引导参数。引导入口的个数及内容根据需要自行定义。
验证 PXE 网络安装
搭建好 PXE 远程安装服务器以后,就可以使用客户机进行安装测试了。对于PC 裸机,一般不需要额外设置;
若要为已有系统的主机重装系统,则可能需要修改BIOS 设置,将“Boot First”设为“NETWORK”或“LAN”,然后重启主机;若使用 VMware创建的虚拟机进行测试,虚拟机内存至少需要 2GB,否则在启动安装时会报错。
如果服务器配置正确,网络连接、 PXE 支持等都没有问题,则客户机重启后将自动配置 IP 地址,然后从 TFTP 服务器中获取引导程序 pxelinux.0,并根据引导菜单配置提示用户指定启动入口,

在提示字串“boot:”后直接按 Enter 键(或执行“auto”命令),将会进入默认的图形
安装入口;若执行“linux text”命令,则进入文本安装入口;若执行“linux rescue”命
令,则进入救援模式。
直接按 Enter 键确认后将自动通过网络下载安装文件,并进入图形安装程序界面

Kickstart 无人值守安装

背景:通过 PXE 技术远程安装 CentOS 7 系统的方法,安装介质不再受限于光盘、
移动硬盘等设备,大大提高了系统安装的灵活性。然而,安装期间仍需要手动选择语言、键盘类型、指定安装源等一系列交互操作,当需要批量安装时非常不方便。

通过使用 Kickstart 工具配置安装应答文件,自动完成安装过程中的各种设置,从而无须手动干预,提高网络装机效率。

可通过图形化向导工具来配置安装应答文件。如果用户对自动应答文件的配置比较熟悉,也可以直接编辑 CentOS7 安装后自动创建的应答文件(/root/anaconda-ks.cfg)

最小化安装可以通过命令安装图形界面以此来使用Kickstart 配置程序

[root@localhost ~]#  yum -y groupinstall 'GNOME Desktop'		###安装图形界面工具
[root@localhost ~]# systemctl set-default graphical.target		###图形界面启动

安装应答文件

[root@localhost ~]# yum -y install  system-config-kickstart		###安装kickstart

配置安装应答参数
通过桌面菜单“应用程序”→“系统工具”→“Kickstart”即可打开“Kickstart 配
置程序”窗口。在“Kickstart 配置程序”窗口中,可以针对基本配置、安装方法、引导装载程序选项、分区信息、网络配置等各种安装设置进行指定

基本配置:
	默认语言:Chinese (P.R. of China)---中文(简体)
	键盘:U.S English
	时区:Asia/Shanghai
	Root密码:123456
	默认密码:123456
	勾选√:给root密码加密
高级配置:
	目标架构:X86、AMD64、活IntelEm64T
	勾选√:安装后重启
	不勾选:在文本模式中执行安装(默认为图形化模式)
	
安装方法:
	勾选√:执行全新安装

安装方法:
	勾选√:FTP  
	FTP服务器:ftp://20.0.0.21
	FTP目录:centos7
	
安装类型:
	勾选√:安装新引导装载程序
	
分区信息:
/boot  	 xfs 	是   	1024
/home  	xfs 	是 	4096
swap    	swap 	是 	2048
/	xfs	是	1

网络配置:
添加一个网络设备“ens33”,将网络类型设为“DHCP”

防火墙配置:
禁用 SELinux、禁用防火墙

安装后脚本的运行

mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
echo “[local]
name=local
baseurl=ftp://20.0.0.21/centos7
enabled=1
gpgcheck=0" > /etc/yum.repos.d/local.repo

配置好以后保存为ks.cfg文件,保存的路径为/var/ftp下

注意:软件包安装默认是禁用的,如果需要启用必须修改yum源配置文件,将[]里的内容改成development,立即生效

配置开机启动项

软件包选择
如果需要安装软件包,可以根据需要将/root/anaconda-ks.cfg 的软件包安装脚本复制到 ks.cfg 文件中,只需要复制%packages 到%end 部分即可,在%packages 到%end 之间,包含以@开头的软件包列表,将不需要的软件名删除,剩下的就是系统会自动安装的软件包

最小化安装
####
%packages
@^minimal
%end
####

如果需要自己配置软件包,需要编辑ks.cfg文件
vim ks.cfg
添加至最后

%packages
@^graphical-server-environment
@base
@core
@desktop-debugging
@development
@dial-up
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@hardware-monitoring
@input-methods
@internet-browser
@multimedia
@print-client
@x11
chrony

%end

添加 ks 引导参数至引导菜单文件

vi /var/lib/tftpboot/pxelinux.cfg/default 
default auto 
prompt 0    ##值为“0”时表示自动执行ks.cfg文件(无人值守)、为“1”时表示手动配置(有人值守
label auto 
kernel vmlinuz 
append initrd=initrd.img method=ftp://20.0.0.21/centos7 ks=ftp://20.0.0.21/ks.cfg

对ks进行优化
vi /var/lib/tftpboot/pxelinux.cfg/default 
default auto
prompt 1

label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://20.0.0.21/centos7  ks=ftp://20.0.0.21/ks.cfg

label linux text
        kernel vmlinuz
        append text initrd=initrd.img method=ftp://20.0.0.21/centos7  ks=ftp://20.0.0.21/ks.cfg

label linux rescue
        kernel vmlinuz
        append rescue initrd=initrd.img method=ftp://20.0.0.21/centos7  ks=ftp://20.0.0.21/ks.cfg
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:52:14  更:2022-01-17 11:53:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 8:58:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码