反转基因福娃 发表于 2024-7-15 20:32:18

云计算【第一阶段(31)】PXE高效批量网络装机

一、体系安装

   1.1、体系装机的三种引导方式

      1.   硬盘       2.   光驱(   u   盘)       3.   网络启动    pxe   1.2、体系安装过程



[*]加载boot loader
Boot Loader 是在操纵体系内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件装备、建立内存空间的映射图,从而将体系的软硬件环境带到一个合适的状态,以便为最终调用操纵体系内答应备好正确的环境。


[*]加载启动安装菜单
在加载了Boot Loader之后,用户通常会看到一个启动安装菜单,答应用户选择不同的启动选项,如进入安装程序、进入安全模式等。这个菜单可能是由Boot Loader提供的,也可能是由安装程序的一部分预先准备的


[*]加载内核和initrd体系(文件才能使用文件)
[*]加载根体系() 运行anaconda的安装领导
根文件体系包含了操纵体系运行所需的所有文件和目录。
某些Linux发行版的安装过程中,可能会使用到类似Anaconda的安装领导来配置体系环境。
1.3、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体系,文件体系驱动等)
二、PXE 原理和概念

2.1、PXE简介

PXE(Preboot eXecution Environment,预启动执行环境)技能的网络装机方法。
PXE 是由 Intel 公司开发的网络引导技能,工作在 Client/Server 模式。
答应客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操纵体系。pxe是通过网卡引导启动。
若要搭建PXE网络体系,必须要满足一下几个前提条件:
   客户机的网卡支持PXE协议(集成BOOTROM芯片),且主板支持网络引导;
   网卡支持,bios支持
网络中有一台DHCP服务器以便于为客户机主动分配IP地址、指定引导文件位置;
服务器通过TFTP(简单文件传输协议)提供引导镜像文件的下载。
    PXE 严格来说并不是一种安装方式,而是一种引导的方式。
举行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。
协议分为 client 和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE client 调入内存执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行。
运行 PXE 协议必要设置 DHCP 服务器 和 TFTP 服务器。DHCP 服务器用来给 PXE client(将
要安装体系的主机)分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,以是在配置 DHCP 服务器时必要增加相应的 PXE 设置。
此外,在 PXE client 的 ROM 中,已经存在了 TFTP Client。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。
2.2、PXE长处

规模化:同时装配多台服务器; 
主动化:安装体系、配置各种服务; 
远程实现:不必要光盘、U 盘等安装介质。
2.3、使用PXE必要的服务



[*]dhcp:必须有dhcp服务分配ip,裸机无ip地址。网卡功能,主动获取ip地址,配置dhcp时告诉tftp服务器地址给裸机客户端。
[*]TFTP:UDP协议,通过此协议将必要的文件下载到网卡,网卡自带功能。因为网卡不支持ftp。tFtp  69
[*]FTP:装软件包时数据过大,tftp不能保证传输。
[*]SYSLINUX-EXTLINUX.X86_64:小型的grub引导程序。
[*]SYSTEM-CONFIG-KICKSTART:KICKSTART无人值守安装
 
2.4、实现过程

 1.PXE客户机(必要安装的机器)发出DHCP哀求,向DHCP服务器申请IP地址。
 2.DHCP服务器相应PXE客户机的哀求,
  a.主动从IP地址池中分配一个IP地址给PXE客户机,
  b.并且告知PXE客户机:TFTP服务器的IP地址
3.PXE客户机向TFTP服务器发起获取pxelinux.0引导程序文件的哀求。
【默认在TFTP共享目录/var/lib/tftpboot/下】

 4.TFTP服务器相应PXE客户机的哀求,将其共享的pxelinux.0文件传输给PXE客户机。

 5.PXE客户机通过网络来启动到体系安装主界面。

 6.PXE客户机向文件共享服务器(ftp、http、nfs等)发起获取centos或windows体系安装文件的哀求。
 7.文件共享服务相应PXE客户机的哀求,将共享的体系安装文件传输给PXE客户机。
 8.PXE客户机进入到安装提示领导界面,用户必要手动来完成体系安装的操纵。
https://i-blog.csdnimg.cn/direct/e78e35e3860c482294003acd3cf18975.png




三、PXE批量摆设

PXE服务器192.168.77.79客户端未安装任何体系(裸机) 起首下载四个服务配置
yum install tftp-server vsftpd syslinux dhcp -y
网卡ens37
3.1、安装并启用 DHCP 服务

将配置文件模板复制到dhcp目录下
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

https://img-blog.csdnimg.cn/img_convert/8da5088e7f02b51917b62fcdca1003dd.png


编辑
vim /etc/dhcp/dhcpd.conf

https://img-blog.csdnimg.cn/img_convert/c04e91e40c1999e722fd604a59df0305.png

https://img-blog.csdnimg.cn/img_convert/cbe9077fd9ed1405c87d495f339c3865.png
subnet 192.168.77.0 netmask 255.255.255.0 {
range 192.168.77.100192.168.77.200;
option routers 192.168.77.2;
next-server 192.168.77.79;
filename "pxelinux.0";
}
systemctl start dhcpd
systemctl enable dhcpd

https://img-blog.csdnimg.cn/img_convert/9390cc5fd5f50e9a715a0042f5d1874a.png

3.2、安装并启用 TFTP 服务

TFTP:(Trivial File Transfer Protocol)是一个小而易于实现的文件传送协议。TFTP是基于UDP数据报,必要有自己的不对改正措施。TFTP只支持文件传输,不支持交互,没有巨大的命令集。也没有目录列表功能,以及不能对用户举行身份辨别。但它的代码所占内存较小,不必要硬盘就可以固化TFTP代码,很适合较小的计算机和特殊用途的装备。


1.必要xinetd配置
vim /etc/xinetd.d/tftp

https://img-blog.csdnimg.cn/img_convert/fc8c9a691f999c121c67035b2b8b341e.png
tftp被xinet所托管,xinetd默认没有安装 配置文件,xinetd是新一代的网络守卫进程服务程序,又叫超级Internet服务器
yum install xinetd -y

https://img-blog.csdnimg.cn/img_convert/d2b9e93ba586a20cfa855976aa9e7fde.png

2.必要pxelinux.0引导程序
syslinux 使用引导程序文件 放到tfpt的根目录下,体系引导
pxelinux.0是个二进制文件,主要作用相当于一个体系安装步骤的指引,引导客户端怎样安装体系

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

https://img-blog.csdnimg.cn/img_convert/40c11ebba6a47322ebdce49f9b21f602.png
注,只有安装了 system-config-kickstart 软件包,才会有/usr/share/syslinux/目录及目录中的文件

3.必要体系初始化文件和内核文件
切换到有镜像的文件(昨天拷贝的,要不就挂载)
mount /dev/cdrom /mnt
cd /mnt/images/pxeboot/

https://img-blog.csdnimg.cn/img_convert/a9922eb233bad77eb8fb240da54aff16.png
拷贝体系初始化文件 内核文件 ,因为要装机
cp initrd.img vmlinuz /var/lib/tftpboot/

https://img-blog.csdnimg.cn/img_convert/dff920b63b918009ab8ced0bf4477046.png
systemctl start xinetd
systemctl enable xinetd
systemctl start tftp
systemctl enable tftp

4.创建启动菜单文件default
至于为什么要是/var/lib/tftpboot/pxelinux.cfg/default文件,因为是由pxelinux.0这个文件决定好的

先创建目录而非文件虽然是以.cfg末了
创建mkdir /var/lib/tftpboot/pxelinux.cfg

https://img-blog.csdnimg.cn/img_convert/6a3138a76fffac89c7aab70badd607fc.png

cd /var/lib/tftpboot/pxelinux.cfg
vim default
内容(背面必要改,1变0默认无人值守安装)

https://img-blog.csdnimg.cn/img_convert/688998e1051abe596e26ad5ffb6a0b15.png
default auto //指定默认入口名称 ,对应下面的label auto
prompt 1 //设置是否等待用户选择,1 表示等待用户控制,0表示不等待用户控制,安装时会出现boot:如果按回车表示选择auto模式


label auto   //默认的图形安装
      kernel vmlinuz
      append initrd=initrd.img method=ftp://192.168.100.100/centos7    //method必须指定网络路径

label linux text    //文本安装模式,出现boot:时输入linux text
      kernel vmlinuz
      append text initrd=initrd.img method=ftp://192.168.100.100/centos7

label linux rescue    //救援模式,出现boot:时输入linux rescue
      kernel vmlinuz
          append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7

3.3、安装ftp服务

准备 CentOS 7 安装源
yum -y install vsftpd
mount /dev/cdrom /mnt
mkdir /var/ftp/centos7
cp -rf /mnt/* /var/ftp/centos7 #将镜像复制此中
systemctl start vsftpd

最后
   重新(记得关闭防火墙和增强)
systemctl start dhcpd
systemctl start tftp
systemctl start vsftpd
systemctl start xinetd
四、kickstart 无人值守安装

4.1、kickstart概念

KickStart 是一种无人职守安装方式。KickStart 的工作原理是通过记载范例的安装过程中所需人工干预填写的各种参数,并天生一个名为 ks.cfg 的文件;在厥后的安装过程中(不但局限于天生 KickStart 安装文件的机器)当出现要求填写参数的环境时,安装程序会起首去查找 KickStart 天生的文件,当找到合适的参数时,就采取找到的参数,当没有找到合适的参数时,才必要安装者手工干预。
这样,如果 KickStart 文件涵盖了安装过程中出现的所有必要填写的参数时,安装者完全可以只告诉安装程序从何处取 ks.cfg 文件,然后去忙自己的事变。等安装完毕,安装程序会根据 ks.cfg 中设置的重启选项来重启体系,并结束安装。
4.2、摆设过程

yum install system-config-kickstart -y

https://img-blog.csdnimg.cn/img_convert/85b6fc80e247aa33cf362e9e4cc5f455.png

https://img-blog.csdnimg.cn/img_convert/b8448d2900dd680c4558868786965650.png
或者

https://img-blog.csdnimg.cn/img_convert/8763f052b959c55a32b3de3e23cc3032.png

https://img-blog.csdnimg.cn/img_convert/b0ad0676614e2aa844974ed035f6dd47.png
https://i-blog.csdnimg.cn/direct/46cfa82903874771a0c21efd4c9b4860.png

https://img-blog.csdnimg.cn/img_convert/68269ad6947665a9353d9dbd76dc3a6c.png
https://i-blog.csdnimg.cn/direct/ff38139ff3594c19ae1cf7674b3cdd73.png

https://img-blog.csdnimg.cn/img_convert/19becac1cb077ac69b9adbd2efca4074.png

https://img-blog.csdnimg.cn/img_convert/8c2bf04cdced0400de2453cfd36f8f07.png
或者
https://img-blog.csdnimg.cn/img_convert/fab85fc1338e30ee895f746fdff2fd07.png

https://img-blog.csdnimg.cn/img_convert/567d8c37fb1134810761ff9af4047117.png

https://img-blog.csdnimg.cn/img_convert/1ee90841d62e691c5816bae95031c532.png
网卡

https://img-blog.csdnimg.cn/img_convert/406171cdc77891d58d78517fe7c85bbc.png

https://img-blog.csdnimg.cn/img_convert/84834d8c2c4e01d4e7e6a46f9a58bc82.png

https://img-blog.csdnimg.cn/img_convert/ba713dcbb51a85c23655f675142060fe.png
安装后脚本的运行,害怕没有网,用ftp
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
echo "
name=local
baseurl=ftp://192.168.77.79/centos7
enabled=1
gpgcheck=0" > /etc/yum.repos.d/local.repo 保存,主动天生ks.cfg(不要改名字)应答文件

https://img-blog.csdnimg.cn/img_convert/c4e7c94b10fdfd0493903014f50ae631.png

查抄

https://img-blog.csdnimg.cn/img_convert/ba5dde14b24d0751d8da6de1d9b171b1.png
/var/ftp/ks.cfg文本内容

https://img-blog.csdnimg.cn/img_convert/5d85be228aa8c6c5b970d1de3faa2711.png
可选则性添加软件包

https://img-blog.csdnimg.cn/img_convert/bd51f7a3b27d89675626b99ee032d99a.png
添加至最后

%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 配置解读表和内容
kickstart的天生应答文件ks.cfg主要包括三个部分:命令段,程序包段,脚本段
Kickstart部分
子项/命令
形貌
命令段
keyboard
设定键盘类型

lang
设置体系语言

zerombr
清除MBR(主引导记载)

clearpart
清除所有分区或指定分区

part
创建新分区

rootpw
设置root用户的密码

timezone
设置体系时区

text
使用文本模式安装界面

network
配置网络接口

firewall
配置防火墙设置

selinux
启用/禁用SELinux

reboot
安装完成后主动重启
安装服务
dhcp, tftp-server, vsftp, syslinux
安装网络服务和引导加载器
修改配置文件
dhcp
设置next-server IP 和filename

tftp-server
修改/etc/xinetd.d/tftp配置,设置服务目录

开启服务
确保dhcp, tftp-server, vsftp等服务运行

user
安装后创建新用户

url
指定安装源(如网络仓库)
程序包段
%packages
开始程序包列表

@^environment group
安装环境包组

@group_name
安装特定包组

package
安装单个包

-package
不安装特定包

%end
结束程序包列表
脚本段
%pre
安装前的脚本,如网络配置

%post
安装后的脚本,如体系配置、用户设置等
# Install OS instead of upgrade
install               //全新安装
# Keyboard layouts
keyboard 'us'//英文键盘
# Root password
rootpw --iscrypted $1$9Rn8W7vF$npbKh8CeIbTxjwHUlcW4n0    //root密码
# Use network installation
url --url="ftp://192.168.100.100/centos7"//网络安装路径
# System language
lang en_US       //系统语言,zh_CN表示中文
# System authorization information
auth--useshadow--passalgo=sha512
# Use text mode install
text       //字符模式安装,graphical表示图形化安装
firstboot --disable
# SELinux configuration
selinux --disabled         //禁用selinux
# Firewall configuration
firewall --disabled      //禁用防火墙
# Network information
network--bootproto=dhcp --device=ens33      //网卡配置
# Reboot after installation
reboot               //安装完重启
# System timezone
timezone Asia/Shanghai                  // 时区:上海
# System bootloader configuration
bootloader --location=mbr                //mbr引导
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel                //清除所有分区信息和初始化分区标签
# Disk partitioning information
part / --fstype="xfs" --grow --size=1            //分区配置
part swap --fstype="swap" --size=2048
part /boot --fstype="xfs" --size=300


最小安装

%packages
@base                  //安装基础软件包
@^gnome-desktop-environment   //安装桌面环境
%end #platform=x86, AMD64, 或 Intel EM64T#version=DEVEL# Install OS instead of upgradeinstall# Keyboard layoutskeyboard 'us'# Root passwordrootpw --iscrypted $1$d7Ivo70y$R6meNEYHLhc6/gb8OeLOd1# System languagelang zh_CN# System authorization informationauth--useshadow--passalgo=sha512# Use graphical installgraphicalfirstboot --disable# SELinux configurationselinux --disabled# Use NFS installation medianfs --server=ftp://192.168.77.79 --dir=centos7# Firewall configurationfirewall --disabled# Network informationnetwork--bootproto=dhcp --device=ens33# Halt after installationhalt# System timezonetimezone Asia/Shanghai# System bootloader configurationbootloader --location=mbr# Clear the Master Boot Recordzerombr# Partition clearing informationclearpart --all --initlabel# Disk partitioning informationpart / --fstype="xfs" --grow --size=1%post --interpreter=/bin/bashmkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
echo "
name=local
baseurl=ftp://192.168.77.79/centos7
enabled=1
gpgcheck=0" > /etc/yum.repos.d/local.repo%end%packages@base@^gnome-desktop-environment%end



重新修改引导菜单文件,添加 ks 引导参数
https://img-blog.csdnimg.cn/img_convert/a3ca1382e50782a3f5e6447dace944a7.png
vim /var/lib/tftpboot/pxelinux.cfg/default

https://img-blog.csdnimg.cn/img_convert/26ce15398b32022aae5e9f61d0103b1f.png
prompt 0 值为“0”时表现主动执行ks.cfg文件(无人值守,默认)、为“1”时表现手动配置(有人值守)
default auto
timeout=600
label auto
      kernel vmlinuz
      append initrd=initrd.img method=ftp://192.168.77.79/centos7ks=ftp://192.168.77.79/ks.cfg

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

label linux rescue
      kernel vmlinuz
      append rescue initrd=initrd.img method=ftp://192.168.77.79/centos7ks=ftp://192.168.77.79/ks.cfg
五、



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 云计算【第一阶段(31)】PXE高效批量网络装机