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账户密码-->等待安装完毕

相关推荐
Karoku06618 分钟前
【k8s集群应用】kubeadm1.20高可用部署(3master)
运维·docker·云原生·容器·kubernetes
木子Linux38 分钟前
【Linux打怪升级记 | 问题01】安装Linux系统忘记设置时区怎么办?3个方法教你回到东八区
linux·运维·服务器·centos·云计算
mit6.82444 分钟前
Ubuntu 系统下性能剖析工具: perf
linux·运维·ubuntu
鹏大师运维1 小时前
聊聊开源的虚拟化平台--PVE
linux·开源·虚拟化·虚拟机·pve·存储·nfs
watermelonoops1 小时前
Windows安装Ubuntu,Deepin三系统启动问题(XXX has invalid signature 您需要先加载内核)
linux·运维·ubuntu·deepin
阿甘知识库1 小时前
宝塔面板跨服务器数据同步教程:双机备份零停机
android·运维·服务器·备份·同步·宝塔面板·建站
滴水之功2 小时前
VMware OpenWrt怎么桥接模式联网
linux·openwrt
saynaihe2 小时前
安全地使用 Docker 和 Systemctl 部署 Kafka 的综合指南
运维·安全·docker·容器·kafka
ldinvicible2 小时前
How to run Flutter on an Embedded Device
linux
YRr YRr3 小时前
解决Ubuntu 20.04上编译OpenCV 3.2时遇到的stdlib.h缺失错误
linux·opencv·ubuntu