LinuxPEX批量网络装机

一、PXE 批量部署

1. 概述

PXE:

预启动执行环境,在操作系统之前运行

服务端:

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

运行TFTP服务,提供引导程序下载(tftp:小文本传输协议,提供配置文件下载)

客户端:

网卡支持PXE协议

主板支持网络引导

2. 优点

规模化:同时装配多台服务器

自动化:安装系统、配置各种服务

远程实现:不需要光盘、U盘等安装介质

3. 装机流程

(1)客户机的网卡查找dhcp服务,获取ip地址和时间

(2)dhcp服务给客户机分配ip地址和引导程序的地址,通过offer报文把tftp服务器的地址发给客户机

(3)tftp服务器把引导文件(pxelinux)传给客户机

(4)客户机把引导程序加载到内存中

(5)引导程序在tftp服务器中查找配置文件,服务器把配置文件传给客户机(配置文件用ftp获取)

(6)服务器通过vsftp服务和客户端互传文件,客户端获得系统的镜像文件

4. pxe装机需要四大文件

(1)首先需要几个服务:

dhcp:给客户机分配ip地址

xinetd:网络守护进程服务程序,又叫超级服务器,管理轻量级的网络服务,配合tftp

tftp:基于udp协议,简单文件传输,传一些小文件,端口 69

vsftp:用于传输大文件,例如镜像文件

syslinux: 引导加载程序,用来简化首次安装linux的时间,建立维护其他特殊或其他特殊用户的启动盘

(2)四大文件

在 /var/lib/tftpboot/ 目录下

vmlinuz

内核文件(从光盘来的,ioslinux目录下)

initrd.img

系统启动镜像镜像文件(光盘,isolinux)

pxelinux.0

引导文件(syslinux)

default

引导程序的配置文件(需要手写,在光盘ioslinux目录下的isolinux.cfg目录下)

二、部署PXE远程安装服务

此台服务器网卡配置:

ip:192.168.10.101

netmask:255.255.255.0

gateway:192.168.23.2

1. 关闭防火墙

复制代码
# 关闭防火墙和selinux安全机制
[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0

2. 安装配置 tftp xinetd服务

解释

# 本地yum源安装

[root@localhost ~]# yum -y install tftp-server xinetd

# 配置tftp服务配置文件

[root@localhost ~]# vim /etc/xinetd.d/tftp

service tftp

{

socket_type = dgram

protocol = udp w

ait = no

user = root

server = /usr/sbin/in.tftpd

server_args = -s /var/lib/tftpboot

disable = no

per_source = 11

cps = 100 2

flags = IPv4 }

# 重启并设置tftp、xinetd服务开机自启

[root@localhost ~]# systemctl restart tftp

[root@localhost ~]# systemctl enable tftp

[root@localhost ~]# systemctl restart xinetd

[root@localhost ~]# systemctl enable xinetd

3. 安装配置 dhcp服务

解释

# 本地yum源安装dhcp服务

[root@localhost ~]# yum -y install dhcp

# 配置dhcpd服务配置文件

[root@localhost ~]# cp -af /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf

ddns-update-style none;

next-server 192.168.23.5;

filename "pxelinux.0"

subnet 192.168.23.0 netmask 255.255.255.0

{ range 192.168.23.100 192.168.23.200;

option routers 192.168.23.5; }

# 重启并设置dhcpd服务开机自启

[root@localhost ~]# systemctl restart dhcpd

[root@localhost ~]# systemctl enable dhcpd

4. 安装配置 vsftpd服务

解释

# 本地yum源安装vsftpd服务

[root@localhost ~]# yum -y install vsftpd

# 配置vsftpd服务

# 创建需要传给客户机的镜像文件

[root@localhost ~]# mkdir /var/ftp/centos7

[root@localhost ~]# df -h

# 镜像文件挂载位置

/dev/sr0 4.3G 4.3G 0 100% /mnt/cdrom

[root@localhost ~]# cp -rf /mnt/cdrom/* /var/ftp/centos7/

# 重启和设置开机自启vsftpd服务

[root@localhost ~]# systemctl restart vsftpd

[root@localhost ~]# systemctl enable vsftpd

5. 配置四大文件

四大文件:

vmlinuz initrd.img pxelinux.0 default

(1)配置 vmlinuz 和 initrd.img 文件

解释

# 将已挂载的镜像文件中的vmlinuz和initerd.img文件复制进tftp的根目录

[root@localhost ~]# cd /mnt/cdrom/images/pxeboot/

[root@localhost pxeboot]# cp vmlinuz /var/lib/tftpboot/

[root@localhost pxeboot]# cp initrd.img /var/lib/tftpboot/

(2)配置pxelinux.0 引导程序文件

解释

# 本地yum源安装syslinux软件包

[root@localhost ~]# yum -y install syslinux

# 将pxe引导文件复制进tftp的根目录

[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

(3)配置default 启动菜单文件

解释

# 创建并配置default文件(默认的启动菜单文件在tftp根目录下的pxelinux.cfg子目录下) [root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg

[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default

default auto

prompt 0

label auto

kernel vmlinuz append initrd=initrd.img method=ftp://192.168.23.5/centos7

label linux text

kernel vmlinuz append text initrd=initrd.img method=ftp://192.168.23.5/centos7

label linux rescue kernel

vmlinuz append rescue initrd=initrd.img method=ftp://192.168.23.5/centos7

(4)查看四大文件
复制代码
[root@localhost ~]# ls /var/lib/tftpboot/

6. 检验PXE是否部署成功

(1)创建裸机
(2)开启主机检验

三、实现Kickstart无人值守安装

通过PXE部署可以自动安装系统,但是到配置操作系统时却需要手动配置,为使完全真正的实现自动安装操作系统,可以使用Kickstart无人值守工具进行安装。

服务器配置:

网卡:

ip:192.168.23.5

netmask:255.255.255.0

gateway:192.168.23.2

以配置PXE部署

1. 安装Kickstart工具

复制代码
# 本地yum源安装kickstart工具
[root@localhost ~]# yum -y install system-config-kickstart

2. 配置Kickstart工具

(1)先进入服务器的图形化界面进行配置

(2)进入命令界面配置

解释

[root@localhost ~]# ls

anaconda-ks.cfg ks.cfg initial-setup-ks.cfg

# 将ks.cfg文件复制到 /var/ftp/目录下

[root@localhost ~]# cp /root/ks.cfg /var/ftp/ks.cfg

# 将模板文件中从 %packages到 %end的内容复制到 /var/ftp/ks.cfg

[root@localhost ~]# cat /root/anaconda-ks.cfg

%packages

@^gnome-desktop-environment

@base

@core

@desktop-debugging

@development

@dial-up

@directory-client

@fonts @gnome-desktop @guest-agents @guest-desktop-agents @input-methods @internet-browser @java-platform @multimedia @network-file-system-client @networkmanager-submodules @print-client @x11 chrony %end # 粘贴 [root@localhost ~]# vim /var/ftp/ks.cfg %packages @^gnome-desktop-environment @base @core @desktop-debugging @development @dial-up @directory-client @fonts @gnome-desktop @guest-agents @guest-desktop-agents @input-methods @internet-browser @java-platform @multimedia @network-file-system-client @networkmanager-submodules @print-client @x11 chrony %end

解释

# 进入引导程序配置文件/var/lib/tftpboot/pxelinux.cfg/default 添加ks引导参数 [root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default

label auto

kernel vmlinuz append initrd=initrd.img method=ftp://192.168.23.5/centos7 ks=ftp://192.168.23.5/ks.cfg

(3)检验Kickstart无人值守是否安装成功

重启客户机test1

相关推荐
深海鱼在掘金14 小时前
Git 完全指南 —— 第1章:Git 概览与版本控制演进
git
大树881 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠1 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质1 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工1 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
网络研究院1 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智1 天前
ARP代理--工作原理
运维·网络·arp·arp代理
treesforest1 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
shushangyun_1 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
2601_961845151 天前
粉笔行测题库|系统班|刷题
网络·百度·微信·微信公众平台·facebook·新浪微博