PXE装机

相关知识:
PXE,预启动环境(Pre-boot eXcute Environment)
—— 默认集成在网卡BOOTROM芯片内(pxeclient)

额外准备:PXE服务器(为客户机装系统、为客户机提供系统)

如何提供一个PXE批量装机的服务器端:
1)DHCP服务,提供IP地址、告知引导服务器在哪、告知获取一个启动文件
2)TFTP服务,提供启动内核、启动配置文件等等
3)HTTP或FTP服务,提供CentOS7软件包资源
4)配置自动安装

实现过程

任务一: 准备一台CentOS7服务器
1)配置好固定主机名pxesvr、IP地址 192.168.10.7/24

hostnamectl set-hostname pxesvr

nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.10.7/24 connection.autoconnect yes

nmcli connection up ens33

2)关闭防火墙、禁用SELinux保护机制

systemctl disable firewalld --now //禁止开机自启,并立即停止

vim /etc/selinux/config

SELINUX=disabled

setenforce 0

3)把CentOS7的光盘(如果是虚拟机,要连接好ISO文件)挂载到 /mnt/dvd

mkdir /mnt/dvd

mount /dev/cdrom /mnt/dvd

4)使用 /mnt/dvd 目录作为临时的软件源

rm -rf /etc/yum.repos.d/*.repo

yum-config-manager --add file:///mnt/dvd

vim /etc/yum.conf

gpgcheck=0

yum repolist

!!! 如果当前主机中没有网络连接,需要先添加连接,再配置地址
1)找到网卡设备的名字(比如ens33)

nmcli device status

… …
2)为网卡ens33添加连接(比如也叫ens33)
格式:nmcli con add con-name 连接名 ifname 网卡名 type ethernet

nmcli connection add con-name ens33 ifname ens33 type ethernet

Linux配置文件内,# 开始的部分表示注释

任务二:提供DHCP服务
1)为客户机分配IP地址相关参数
2)告诉客户机下一步去找哪一台服务器、去索取一个网卡启动文件
!!! Linux系统配置文件中的注释标记 #
!!! 停用工作网络(比如NAT)中其他DHCP服务(比如VMware自带),避免冲突

yum -y install dhcp

vim /etc/dhcp/dhcpd.conf

subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.100 192.168.10.200;
next-server 192.168.10.7; //告知下一个服务器(TFTP)的地址
filename “pxelinux.0”; //告知需要下载的网卡启动文件名
}

systemctl enable dhcpd --now //设置开机自启,并立即启动

其他配置参考:
#option routers 默认网关地址;
#option domain-name-servers DNS服务器1地址,DNS服务器2地址;
#default-lease-time 3600; //默认租约时间
#max-lease-time 7200; //最大租约时间

!!! DHCP服务排错 ——
1)检查服务状态

systemctl status dhcpd

状态正常应该是 绿色的 active (running)

systemctl restart dhcpd

Job for dhcpd.service failed because the control process exited with error code.
See “systemctl status dhcpd.service” and “journalctl -xe” for details. ==》说明配置文件有错误,或者本机的IP地址网段不符。

2)获知配置文件哪里有错、有什么样的错误

vim /var/log/messages //Linux服务器的日记

… … 从最后一行往前找
/etc/dhcp/dhcpd.conf line 10: 。。。。。 //第10行有XX错误

!!! 本机测试以DHCP方式获取地址:

dhclient -d ens33 //-d表示调试模式,不真正修改地址

… …
bound to 192.168.10.X
… …
按Ctrl + C 终止测试

任务三:为客户机提供软件包资源(Web方式)
1)装httpd包

yum -y install httpd

2)部署软件包资源

mkdir /var/www/html/cos7dvd

cp -r /mnt/dvd/* /var/www/html/cos7dvd

… … 请耐心等待,不要中断
3)起httpd服务

systemctl enable httpd --now

从本机浏览器访问 http://192.168.10.7/cos7dvd,能看到软件资源页

!!! Web配置(如果原来配置过虚拟Web主机,需要注意)
1)一旦启用虚拟主机以后,默认ServerName、DocumentRoot失效
2)如果浏览器提交过来的HTTP请求不属于任何已经定义的某一个虚拟主机,那么以第一个虚拟主机的网页目录做反馈

vim /etc/httpd/conf.d/vhosts.conf //在第1行插入以下内容

<VirtualHost *:80>
DocumentRoot /var/www/html

systemctl enable httpd --now

任务四:提供网络启动相关的文件(构建TFTP启动服务器)
1)网卡启动文件 pxelinux.0
由软件包 syslinux 提供(/usr/share/syslinux/pxelinux.0)
2)启动菜单配置 pxelinux.cfg/default (配置模块文件、背景图片……)、加载CentOS7系统安装程序(vmlinuz、initrd.img)
从CentOS7光盘目录isolinux/下获得

yum -y install tftp-server //安装TFTP服务软件

yum -y install syslinux

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ //部署启动文件

cp /mnt/dvd/isolinux/* /var/lib/tftpboot/ //部署配套文件

cd /var/lib/tftpboot/

mkdir pxelinux.cfg //创建配置目录

cp isolinux.cfg pxelinux.cfg/default //建立默认菜单配置

vim pxelinux.cfg/default

查找 label linux,修改下方的 append 行,inst.stage2=后指定软件包来源地址
append initrd=initrd.img inst.stage2=http://192.168.10.7/cos7dvd

systemctl enable tftp --now //启动TFTP服务端

测试TFTP资源是否可以下载:

cd /root

yum -y install tftp

tftp 192.168.10.7 -c get pxelinux.0

ls -lh pxelinux.0

任务五:测试PXE网络启动及安装
1)新建一台虚拟机(CentOS64位、内存>2G)
2)把虚拟机开机客户机从网卡启动
---- DHCP自动获取到地址
---- 连接TFTP服务器
---- 下载pxelinux.0启动文件
---- 获取菜单配置文件 pxelinux.cfg/default
3)看到安装菜单 ==》选择安装Install CentOS7
---- 下载 vmlinuz、initrd.img
---- 运行内核文件、加载安装程序、确保能看到图形选语言界面、……
---- 手动指定安装来源 http://192.168.10.7/cos7dvd
---- 后续过程与光盘安装类似,可以不用完成安装,关闭虚拟机即可

!!! 若客户机的内存太小,开机PXE引导时容易出现内核崩溃现象
kernel panic 内核崩溃(恐慌)

kickstart无人值守/自动应答技术

kick,踢
start,开始

Shell脚本(自己会跑/运行的文本)

kickstart无人值守技术

任务六:提供自动应答文件(回答安装过程中的各种问题)
1)如何获取应答文件

vim /etc/yum.repos.d/*.repo

[development] //源的ID要求 改成 development

yum -y install system-config-kickstart

system-config-kickstart

基本配置:语言、时区、管理密码
安装方法:全新安装、HTTP安装源的设置
安装引导装载程序:安装新引导装载程序
分区:三个单选都选第一项、添加 swap 2000M、/  剩余所有空间
网络配置:添加一个连接(DHCP)
软件包选择:勾选“桌面”下除了KDE以外的所有软件类
安装后脚本,参考以下内容:

rm -rf /etc/yum.repos.d/*.repo
echo '[cos7dvd]
name=added from: file:///mnt/dvd
baseurl=http://192.168.10.7/cos7dvd
enabled=1
gpgcheck=0
’ > /etc/yum.repos.d/cos7dvd.repo

—— 保存到 /root/ks.cfg

2)如何让客户机用上这个应答文件

cp /root/ks.cfg /var/www/html/ks-cos7.cfg

浏览器访问 http://192.168.10.7/ks-cos7.cfg

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

查找 linux,修改下方的 append 行,
删除 inst.stage2= 部分,换成 ks=应答文件的下载地址
append initrd=initrd.img ks=http://192.168.10.7/ks-cos7.cfg

任务七:客户机无人值守安装测试
1)新建一台虚拟机(CentOS64位、内存>2G)
2)把虚拟机开机客户机从网卡启动
---- DHCP自动获取到地址
---- 连接TFTP服务器
---- 下载pxelinux.0启动文件
---- 获取菜单配置文件 pxelinux.cfg/default
3)看到安装菜单 ==》选择安装CentOS7
---- 下载 vmlinuz、initrd.img
---- 运行内核文件、加载安装程序、确保能看到图形选语言界面、……
---- 自动完成安装过程

Shell脚本程序 ——
Shell(/bin/bash)
长脚的文本文件(包含了一批Linux命令行)

引用内容提供了在Linux系统上安装syslinux和配置tftp服务器的步骤,引用内容提供了创建pxelinux.cfg目录的步骤,引用内容提供了保存自动应答软件和编辑引导菜单的步骤。 PXE(Preboot Execution Environment)是一种网络引导协议,可以通过网络从服务器上安装和配置操作系统。使用PXE进行Linux装机可以实现批量装机和自动化装机的需求。 在进行Linux PXE装机之前,需要进行以下步骤: 1. 安装syslinux和tftp服务器:使用命令`yum install -y syslinux`安装syslinux,并使用命令`yum install -y tftp-server`安装tftp服务器。 2. 复制pxelinux.0文件到tftp服务器目录:使用命令`cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/`将pxelinux.0文件复制到tftp服务器的目录下。 3. 创建pxelinux.cfg目录:使用命令`mkdir /var/lib/tftpboot/pxelinux.cfg`创建pxelinux.cfg目录,该目录用于存放引导菜单的配置文件。 4. 准备自动应答文件:将自动应答文件(比如ks.cfg)保存到服务器上,可以使用命令`cp /root/anaconda-ks.cfg /var/ftp/ks.cfg`将anaconda-ks.cfg文件复制到/var/ftp/目录下。 5. 编辑引导菜单的配置文件:使用命令`vim /var/lib/tftpboot/pxelinux.cfg/default`编辑引导菜单的配置文件,添加以下内容: ``` default auto prompt 0 label auto kernel vmlinuz append initrd=initrd.img method=ftp://192.168.100.10/centos7 ks=ftp://192.168.100.10/ks.cfg ``` 通过以上步骤,可以实现Linux PXE装机。在客户端上启动时,系统将从tftp服务器上下载引导文件pxelinux.0,然后根据引导菜单的配置文件default进行自动安装,同时使用指定的自动应答文件ks.cfg进行操作系统的配置。 请根据实际需求和网络环境进行相应的配置和调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Linux——轻松学会PXE高效网络装机](https://blog.csdn.net/m0_61744194/article/details/124291052)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [如何使用PXE实现Linux网络装机](https://blog.csdn.net/YsDou/article/details/120143627)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值