Linux——轻松学会PXE高效网络装机

一、PXE

PXE是由Inter公司开发的网络引导技术,工作在Client/Server模式;允许客户机通过网络从远程服务机下载引导镜像,并加载安装文件或整改操作系统。

1.1 PXE的优势

  • 规模化: 同时装配多台服务器,无需每一台单独安装操作系统;
  • 自动化: 实现服务器的自动安装及自动配置各种服务;
  • 远程实现: 不需要光盘、U盘等安装介质,方便快捷的同时又可以保障服务器的安全。

1.2 搭建网络体系前提条件

-客户机:

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

服务端:

  • DHCP服务器:以便为客户机自动分配地址,指定引导文件
  • 服务器要开启TFTP服务(简单文件传输协议):用来提供系统内核和引导镜像文件的下载

1.3 PXE工作过程

1.网卡需要查找相关的dhcp服务器(获取地址时间)
2.找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
3.网卡使用tftp客户端吧引导程序加载到内存中来
4.bios执行引导程序
5.引导程序会去TFTP去查找配置文件
6.根据配置文件去引导安装系统

1.4 安装包

在这里插入图片描述

二、部署PXE远程安装服务

2.1 前期准备

dhcp(Dynamic Host Configuration Protocal,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作。

2.1.1 添加一张网卡,并设置成仅主机模式

在这里插入图片描述
然后进入虚拟机修改网络编辑模式
在这里插入图片描述
在这里插入图片描述

2.1.2 配置网卡信息

[root@pxw /]# ifconfig ens37 192.168.100.10/24
[root@pxw /]#cp ens33 ens37
[root@pxw /]# vim /etc/sysconfig/network-scripts/ifcfg-ens37
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="fe7580c6-dd13-4fbe-afcf-cf3a164375dc"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.100.10
PREFIX=24
GATEWAY=192.168.100.2
DNS1=8.8.8.8

[root@pxw /]# systemctl start network  ##重启网卡
[root@pxw /]# ping 192.168.100.1   ##ping以下本机1地址

在这里插入图片描述

2.2 安装DHCP服务

[root@pxw ~]# yum install dhcp -y
[root@pxw ~]# cp //usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
[root@pxw ~]# cd /etc/dhcp/
[root@pxw dhcp]# #vim dhcpd.conf 
14 ddns-update-style none;    ##将这段注释掉

subnet 192.168.100.0 netmask 255.255.255.0 {    ##网段和子网掩码
  range 192.168.100.30 192.168.100.40;    ##地址池
  option routers 192.168.100.2;  ##VMnet 网关
  next-server 192.168.100.10;       ##指定TFTP服务器位置
  filename "pxelinux.0";
}

[root@pxw ~]# systemctl start dhcpd
[root@pxw ~]# systemctl enable dhcpd

在这里插入图片描述
在这里插入图片描述

2.3 安装TFTP

[root@pxw dhcp]# yum install -y tftp-server
[root@pxw dhcp]# rpm -ql tftp-server
/etc/xinetd.d/tftp
[root@pxw dhcp]# vim /etc/xinetd.d/tftp   ##修改TFTP服务的配置文件
protocol                = udp       ##TFTP采用UDP传输协议
wait                    = no        ##no表示可以多台客户机同时连接,yes表示客户机只能一台一台连
server_args             = -s /var/lib/tftpboot   ##指定TFTP根目录
disable                 = no     ##no表示开启TFTP服务

在这里插入图片描述

在这里插入图片描述

2.4 安装syslinux

[root@pxw dhcp]# yum install -y syslinux

[root@pxw dhcp]# rpm -ql tftp-server
/var/lib/tftpboot   #有很多配置文件,记住这个,所有的配置文件都在它之下

[root@pxw dhcp]# rpm -ql syslinux | grep 0
/usr/share/syslinux/pxelinux.0 #在最后一行,复制此文件

[root@pxw dhcp]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@pxw dhcp]# ls /var/lib/tftpboot
pxelinux.0 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.5 安装 vsftp

安装系统镜像文件获取方式

[root@pxw dhcp]# yum install -y vsftpd
[root@pxw dhcp]#rpm -ql vsftpd 
/var/ftp #找到最后一个;此站点为vsftpd的站点,一会挂载在此站点下
 
[root@pxw dhcp]# cd /var/ftp
[root@pxw ftp]# ls
pub
[root@pxw ftp]#mkdir centos7 #创建目录,作为光盘挂载点
[root@pxw ftp]#mount /dev/sr0 centos7/  #将光盘挂载到当前目录的centos7/下
mount: /dev/sr0 写保护,将以只读方式挂载
 
[root@pxw centos7]#cd images/
[root@pxw images]#ls
efiboot.img  pxeboot  TRANS.TBL
[root@pxw images]#cd pxeboot/
[root@pxw pxeboot]#ls
initrd.img  TRANS.TBL  vmlinuz
[root@pxw pxeboot]#cp initrd.img vmlinuz /var/lib/tftpboot/  #将两个文件拷贝到站点/var/lib/tftpboot下。所有的配置文件都在此站点哦!!!
 
[root@pxw pxeboot]#cd /var/lib/tftpboot/ #切换至站点目录
[root@pxw tftpboot]#ls
initrd.img  pxelinux.0  vmlinuz
 
[root@pxw tftpboot]#mkdir pxelinux.cfg  #创建文件夹 pxelinux.cfg
[root@pxw tftpboot]#cd pxelinux.cfg/
 
[root@pxw pxelinux.cfg]#vim default  #在 pxelinux.cfg目录下创建文件default
#这个文件不会写,没关系,可以再开一个会话,可以在isolinux.cfg文件去复制
#开机不等待,也可以设置timeout 600,默认等到60秒
prompt 1
 
label auto
  kernel vmlinuz
  append initrd=initrd.img method=ftp://192.168.100.10/centos7
 
label test
  kernel vmlinuz
  append test=initrd.img method=ftp://192.168.100.10/centos7
 
label rescue
  kernel vmlinuz
  append rescue=initrd.img method=ftp://192.168.100.10centos7
 
 #开启全部服务,关闭防火墙,pxe就装完成了
 [root@pxw pxelinux.cfg]# systemctl start dhcpd
[root@pxw pxelinux.cfg]# systemctl start vsftpd
[root@pxw pxelinux.cfg]# systemctl start tftp
[root@pxw pxelinux.cfg]# systemctl stop firewalld.service
[root@pxw pxelinux.cfg]# setenforce 0

在这里插入图片描述
在这里插入图片描述

装机测试一下

三、Kickstart无人值守安装的实现(使用桌面环境)

%pre: 安装前脚本

%post: 安装后脚本

3.1 准备安装应答文件

[root@pxw kiro]# yum install -y system-config-kickstart

在这里插入图片描述

3.2 打开 "Kickstart配置程序"窗口

打开虚拟机桌面左上角 >> “应用程序” >> “系统工具” >> “ Kickstart” 打开
或者
直接“ system-config-kickstart” 命令打开

在这里插入图片描述
在这里插入图片描述

3.3 配置kickstart 选项

基础配置
在这里插入图片描述

安装方法

在这里插入图片描述

引导装载程序选项
在这里插入图片描述

分区信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

网络配置
在这里插入图片描述

验证
验证这一项保持默认选项
在这里插入图片描述

防火墙配置
在这里插入图片描述

显示配置
显示配置不需要修改
在这里插入图片描述

软件包选择
在这里插入图片描述

预安装脚本
预安装脚本不用配置

安装后脚本
我在脚本里放入了安装本地yum源
在这里插入图片描述

保存配置
在这里插入图片描述

保存自动应答软件
在这里插入图片描述

3.4 编辑需要引导的菜单default,添加ks参数

[root@localhost ~]#cd /var/ftp/
[root@localhost ftp]#ls
centos7  ks.cfg  pub
[root@pxw pxelinux.cfg]# cp /root/anaconda-ks.cfg /var/ftp/ks.cfg
## 和本机安装软件anaconda-ks.cfg 包含了我们本机服务器的脚本文件

[root@localhost ftp]#cd /var/lib/tftpboot/
[root@localhost tftpboot]#ls
initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz
[root@localhost tftpboot]#cd pxelinux.cfg/
[root@localhost pxelinux.cfg]#vim default
default auto
prompt 0   ##0代表 不用等用户操作

label auto
  kernel vmlinuz
  append initrd=initrd.img method=ftp://192.168.100.10/centos7 ks=ftp://192.168.100.10/ks.cfg
  ##在这一行的行末添加

五、装机测试

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值