pxe自动装机(centos)

概述

PXE(Preboot Execution Environment)是一种允许计算机通过网络启动自己的操作系统的技术。它允许计算机在缺少本地存储设备或操作系统的情况下,从远程服务器上下载并执行操作系统。PXE通常用于无盘站点或远程支持,可以通过网络直接引导计算机,而无需使用本地硬盘或光盘。

pxe的工作原理

  • DHCP:为计算机分配IP地址。
  • FTP:进行系统文件的传输。
  • TFTP:提供操作系统镜像文件。
  • 客户端:在启动时通过DHCP获取IP地址,然后通过TFTP和FTP下载启动文件,完成操作系统的加载和安装。

pxe的优点

  • 规模化:同时装配多台服务器(一台服务器一般可以装配20-30台)
  • 自动化:系统安装和服务配置不需要人工干预
  • 远程实现:既不需要光盘,也不需要U盘

一、pxe

pxe----->自动安装系统必要的运行环境

1.安装并启动tftp服务

yum -y install tftp-server xinetd #安装tftp和xinetd服务

vim /etc/xinetd.d/tftp

wait=no #yes串行,no并行

disable=no #开启tftp服务

systemctl restart tftp

systemctl enable tftp #开机自启,可以不设置

systemctl restart xinetd

2.安装并启用 dhcp 服务

yum -y install dhcp #安装dhcp

cd /usr/share/doc/dhcp-4.2.5/

cp dhcpd.conf.example /etc/dhcp/dhcpd.conf #复制覆盖掉/etc/dhcp/dhcpd.conf

vim /etc/dhcp/dhcpd.conf

next-server 192.168.206.10; #指定TFTP服务器的ip地址(本机)

filename "pxelinux.0"; #指定要下载pxe引导程序的文件

subnet 192.168.206.0 netmask 255.255.255.0 {

range 192.168.206.60 192.168.206.70;

option routers 192.168.206.10; #指向本机

}

systemctl restart dhcpd

3.准备 Linux 内核、初始化镜像文件

mount /dev/cdrom /mnt #挂载

cd /mnt/images/pxeboot/

cp initrd.img /var/lib/tftpboot/ #initrd.img:linux引导加载模块

cp vmlinuz /var/lib/tftpboot/ #vmlinuz:内核文件

4.pxe的引导文件

yum -y install syslinux

cd /usr/share/syslinux/

cp pxelinux.0 /var/lib/tftpboot/

ls /var/lib/tftpboot/ #三个文件必不可少

5.安装vsftp,进行系统文件的传输

yum -y install vsftpd

mkdir /var/ftp/centos7 #在匿名用户工作的目录/var/ftp下创建目录centos7

cp -rf /mnt/* /var/ftp/centos7 #把整个光盘镜像强制复制到匿名用户工作的目录

6. 设置启动菜单的文件

cd /var/lib/tftpboot/

mkdir pxelinux.cfg #pxelinux.cfg目录名是固定的

cd pxelinux.cfg/

vim default #在该目录下创建default文件

default auto #声明pxe入口文件的位置 指定默认的接口

prompt 0 #表示不等待用户选择,自行操作

label auto

kernel vmlinuz

append initrd=initrd.img method=ftp://192.168.206.10/centos7

#图形化界面的安装入口,kernel和append来引导定义系统配置的文件

label linux text

kernel vmlinuz

append text initrd=initrd.img method=ftp://192.168.206.10/centos7

#字符串界面的入口

label linux rescue

kernel vmlinuz

append rescue initrd=initrd.img method=ftp://192.168.206.10/centos7

#救援模式

systemctl stop firewalld #关闭系统防火墙

setenforce 0 #关闭系统安全机制

二、无人值守

1.安装system-config-kickstart 工具

yum -y install system-config-kickstart

2.打开"Kickstart 配置程序"窗口

通过桌面菜单"应用程序"-->"系统工具"-->"Kickstart" 打开

或执行 "system-config-kickstart" 命令打开

3.配置kickstart选项

4.保存自动应答文件

选择"Kickstart 配置程序"窗口的"文件"-->"保存"命令,选择指定保存位置,文件名为ks.cfg

默认保存在/root/ks.cfg

cp /root/ks.cfg /var/ftp/ks.cfg

5.配置需要安装的软件包

vim /var/ftp/ks.cfg

%end的下面粘贴

#完全安装

%packages

@base

@core

@desktop-debugging

@dial-up

@directory-client

@fonts

@gnome-desktop

@guest-desktop-agents

@input-methods

@internet-browser

@java-platform

@multimedia

@network-file-system-client

@print-client

@x11

binutils

chrony

ftp

gcc

kernel-devel

kexec-tools

make

open-vm-tools

patch

python

%end

#最小化安装

%packages

@^minimal

%end

6.编辑引导菜单文件 default,添加 ks 引导参数

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

append initrd=initrd.img method=ftp://192.168.206.10/centos7 ks=ftp://192.168.206.10/ks.cfg

##添加 ks 引导参数以指定 ks.cfg 应答文件的 URL 路径

7.验证无人值守安装

新建虚拟机(centos7 64位)-->开启虚拟机-->自动安装-->设置root账户密码-->等待安装完毕

相关推荐
aduzhe8 分钟前
在 Ubuntu 上配置防火墙以开放特定端口
linux·运维·ubuntu
2401_8401922716 分钟前
k8s更新
linux·运维·服务器
小麦项目管理指南31 分钟前
如何通过低代码逻辑编排实现业务流程自动化?
运维·低代码·自动化·源代码管理
kejijianwen1 小时前
Algen的跨链互操作性:增强区块链连接性
运维·centos·区块链
刘艳兵的学习博客1 小时前
刘艳兵-DBA041-使用常用的数据泵功能导出时,主要需要关注以下哪些步骤?
运维·服务器·数据库·sql·mysql·oracle·刘艳兵
刘艳兵的学习博客1 小时前
刘艳兵-DBA044-关于cardinality的描述,正确的是?
运维·数据库·oracle·dba·刘艳兵
别NULL1 小时前
《现代网络技术》读书笔记:SDN应用平面
linux·网络·sdn
黄焖鸡能干四碗1 小时前
数字化转型企业架构设计手册(交付版),企业数字化转型建设思路、本质、数字化架构、数字化规划蓝图(PPT原件获取)
大数据·运维·开发语言·架构·需求分析·软件需求
hhj123k1 小时前
服务器作业4
linux·运维·服务器
YRr YRr2 小时前
解决在Ubuntu 20.04中使用PyCharm时无法输入中文的问题
linux·ubuntu·pycharm