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

相关推荐
叼烟扛炮1 分钟前
Linux 学习笔记(十五):进程的魔法 fork 与 僵尸孤儿
linux·运维·服务器
济南凡维15 分钟前
智能相机 VS 工业相机:机器视觉选型一次讲透
网络·数码相机·视觉检测
manageengine18 分钟前
PHP2Shell 事件复盘:企业应该如何自查、修复与规模化处置
运维·安全·php
kxx66622 分钟前
网络原理(初识)
网络
Initialize2930835 分钟前
Kafka 消息越堆越多、消费越来越慢?五步查清消费积压
运维
天南散修44 分钟前
《802.11-2024》第06讲 · 介质接入:MAC 架构与 DCF(CSMA/CA)
linux·网络·wifi·802.11
时间售卖铺1 小时前
MySQL 表的约束
运维·数据库·mysql·云原生
广州工博科技1 小时前
SAP Joule for Consultants 如何为自动化与集成项目提供支持?
运维·自动化
Acrellea1 小时前
数据中心这台新变压器,让配电房的电表全失效了
运维·能源
QYR-分析1 小时前
2.80 亿增至 4.12 亿美元,CAGR5.6%:肌电诱发电位仪稳健扩容,神经电生理检测设备加速走向便携与数字化
大数据·网络·人工智能