PXE+kickstart自动化安装centos7

本文介绍如何使用PXE技术实现CentOS7的自动化安装,包括环境搭建、服务器配置及客户端操作流程。通过Kickstart文件减少人机交互,提高安装效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 理论部分

1) pxe简介

PXE (preboot execute environment ,预启动执行环境)工作于 Client/Server 的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统

2) 工作流程
 1)PXE Client 从自己的网卡启动,向本网络中的DHCP服务器索取IP;
 2)DHCP 服务器返回分配给客户机的 IP 以及PXE文件的放置位置(该文件一般是放在一台TFTP服务器上) ;
 3)PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件;
 4)PXE Client 取得pxelinux.0 文件后之执行该文件;
 5)根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统 ;
 6)进入安装画面, 此时可以通过选择HTTP、FTP、NFS 方式之一进行安装;
3) kickstart简介
  • Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在安装过程中(不只局限于生成Kickstart安装文件的机器)出现要填写参数的情况,安装程序首先会去查找Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装。

  • 目的是为了 减少系统安装的过程中的人机交互,提高安装效率

在这里插入图片描述

2. 环境

本次操作使用VMware虚拟机进行操作,点击编辑-网络编辑器,先添加一个网卡,类型为仅主机,取消使用宿主机的dhcp
在这里插入图片描述

pxe服务器

PXE服务器建议使用固定IP

TYPE="Ethernet"
BOOTPROTO="static"
NAME="ens36"
DEVICE="ens36"
ONBOOT="yes"
IPADDR="192.168.1.10"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.10"

pxe客户机

点击新建虚拟机,配置好之后 直接启动 注意 客户机和服务器要使用同一种网络连接方式 否则无法通过pxe进行系统安装

3. 需求

  • syslinux,提供pxelinux.0
  • dhcp-server,为客户机提供IP
  • tftp-server,为客户机提供简单文件传输(如传输pxelinux.0等)
  • vsftpd,提供repo的系统文件服务
  • CentOS 7(安装光盘

4. 安装和配置

pxe服务器

服务器配置本地yum

[root@localhost ~]# cat /etc/yum.repos.d/development.repo 
[development]
name=base
baseurl=file:///mount
enabled=1
gpgcheck=0

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y install tftp-server vsftpd syslinux dhcp xinetd
[root@localhost ~]# mount /dev/cdrom /mount

#关于ftp
[root@localhost ~]# mkdir -p /var/ftp/centos
[root@localhost ~]# mount --bind /mnt /var/ftp/centos/  #vsftpd不允许软链接目录

#关于TFTP
[root@localhost ~]# mkdir -p /tftpboot/pxelinux.cfg  #创建tftp启动目录
[root@localhost ~]# cp -a /mount/isolinux/* /tftpboot/
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/
[root@localhost ~]# cd /tftpboot/
[root@localhost tftpboot]# mv isolinux.cfg pxelinux.cfg/default
[root@localhost tftpboot]# vim pxelinux.cfg/default 
把最上边的timeout 600 改成timeout 50  表示等待用户5秒(这里一个单位是1/10秒)

在所有的lable上添加以下内容 并将其下边的默认的两个label删除掉
label linux-kgc
menu label ^Install CentOS 7 kgc
menu default
kernel vmlinuz
append initrd=initrd.img ks=ftp://192.168.10.10/ks.cfg quiet


[root@localhost pxelinux.cfg]# vim /etc/xinetd.d/tftp 
把disable的yes改为no,另外,需要更改一下目录,如下图所示
 13         server_args             = -s /tftpboot
 14         disable                 = no

#关于dhcp  具体修改如下图
[root@localhost pxelinux.cfg]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
[root@localhost pxelinux.cfg]# vim /etc/dhcp/dhcpd.conf 
修改默认租约时间和最大租约时间,都改大一点
ddns-update-style none;
log-facility local7;

subnet 192.168.1.0 netmask 255.255.255.0 {
    option routers 192.168.1.10;
    range 192.168.1.100 192.168.1.200;
    next-server 192.168.1.10; #生命tftp服务器ip
    filename "pxelinux.0";  #注意这里的filename是个相对路径,相对于 /tftpboot
}



#安装ks
[root@localhost pxelinux.cfg]# yum -y install system-config-kickstart
桌面启动,如下图 设置完之后保存在root目录

也可以用命令启动ks
[root@localhost tftpboot]# system-config-kickstart 

[root@localhost ~]# vim ks.cfg
尾部添加如下内容
user --name=tiechui --password=1234.com
eula --agreed
 
[root@localhost tftpboot]# cp -a /root/ks.cfg /var/ftp/ks.cfg

[root@localhost tftpboot]# chmod +r /var/ftp/ks.cfg 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

pxe服务器启动服务

[root@localhost pxelinux.cfg]# systemctl start xinetd
[root@localhost pxelinux.cfg]# systemctl start dhcpd
[root@localhost pxelinux.cfg]# systemctl start vsftpd

pxe客户端操作

启动已经配置好的需要安装系统的虚拟机

之后就会自动化安装 无需干预 如下图所示
在这里插入图片描述

ks.cfg完整内容如下

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$WD3zvKhB$H5R80Hjd/5RYPHVoqMzk./
# Use network installation
url --url="ftp://192.168.10.10/centos"
# System language
lang en_US
# Firewall configuration
firewall --disabled
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled

# Network information
network  --bootproto=dhcp --device=ens32
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai --isUtc
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all
# Disk partitioning information
part / --fstype="xfs" --grow --size=1

%packages
@gnome-desktop
@x11
tigervnc-server
xorg-x11-drv-keyboard
xorg-x11-drv-mouse
xorg-x11-drv-openchrome

%end
eula --agreed

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值