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

相关推荐
此生只爱蛋19 分钟前
【Linux】正/反向代理
linux·运维·服务器
qq_54702617926 分钟前
Linux 基础
linux·运维·arm开发
zfj32132 分钟前
sshd除了远程shell外还有哪些功能
linux·ssh·sftp·shell
废春啊38 分钟前
前端工程化
运维·服务器·前端
我只会发热41 分钟前
Ubuntu 20.04.6 根目录扩容(图文详解)
linux·运维·ubuntu
爱潜水的小L1 小时前
自学嵌入式day34,ipc进程间通信
linux·运维·服务器
保持低旋律节奏1 小时前
linux——进程状态
android·linux·php
zhuzewennamoamtf1 小时前
Linux I2C设备驱动
linux·运维·服务器
zhixingheyi_tian1 小时前
Linux 之 memory 碎片
linux
邂逅星河浪漫2 小时前
【域名解析+反向代理】配置与实现(步骤)-SwitchHosts-Nginx
linux·nginx·反向代理·域名解析·switchhosts