PXE实现批量无人值守安装CentOS7系统

通过传统的方式安装和部署计算机时,都需要人工干预的方式完成安装。如果需要部署大量的类似功能的工作站或服务器,则需要耗费大量的时间。同时传统的安装方式,每台计算机都需要光驱设备及安装光盘等介质,会额外增加部署成本。因此,许多系统管理员都希望能够通过一种网络化的无人值守的自动安装方式将操作系统部署到目标计算机中。

一、相关服务和工具

1、PXE协议

PXE 是由 Intel 设计的协议,计算机可以通过 PXE 协议从网络引导启动。PXE 协议在启动过程分为 client 和 server 端,PXE 协议运行过程主要解决两个问题:首先解决 IP 地址的问题,然后解决如何传输操作系统启动文件和安装文件的问题。对于第一个问题,可以通过 DHCP Server 解决,通常情况下 DHCP 服务器主要用于分配 IP 地址给客户端。但在 PXE 环境下,DHCP 服务器需要额外加载 PXE 的相关配置。针对第二个问题,在启动初期因为 PXE client 中有相应的 TFTP 客户端,可以通过 TFTP 协议到 TFTP 服务器中下载相关文件启动计算机。后期在安装过程中,则通过 FTP 或 NFS 协议提供大量的操作系统安装文件的下载。

2、Kickstart

通过传统的方式安装和部署计算机时,都会要求通过交互的方式,回答各类问题,以完成安装和部署任务,过程繁琐,且无法实现自动化。红帽公司开发了 Kickstart 的安装方法,通过 ks 文件可以解决所有普通安装方式中需要回答的问题。可以通过 system-config-kickstart 工具定制 ks 文件,也可以通过相关语法来手工编写安装脚本。

3、Centos操作系统

本次实验中所使用和安装的操作系统为CentOS 7,理论上 CentOS 6也是适用的。

4、DHCP

动态主机配置协议,主要用于给 DHCP 客户端自动分配 IP 地址,便于用户管理网络内部的计算机。针对 PXE 环境下,DHCP 服务器除分配 IP 地址外,还需要额外配置”next-server”选项定义 TFTP 服务器的地址,设置”filename”选项定义启动文件的名称。并且启动”booting”与”bootp”的支持。

5、TFTP与FTP

简单文件传输协议(TFTP)主要用于为客户机与服务器之间进行简单文件传输的协议。在 PXE 早期启动过程中,主要通过 TFTP 协议传输”pxelinux.0”。文件传输协议(FTP),适用于大量文件传输的情形,在后期安装过程,主要通过 FTP 协议传输 Linux 操作系统的安装包。

二、安装流程记录

1.把ISO镜像挂载到mnt目录
mount /dev/sr0 /mnt          #把ISO镜像挂载到mnt目录
df -h            #查看是否挂载
1629301235(1).png
2.配置本地yum源
vim /etc/yum.repos.d/development.repo  
#新建development.repo文件,并添加以下内容
[development]
name=development
baseurl=file:///mnt/
gpgcheck=0
enabled=1
3.yum安装所需软件
yum install -y dhcp tftp tftp-server syslinux vsftpd xinetd
4.拷贝镜像文件到ftp服务器目录
cd /var/ftp/pub          #进入到ftp服务器目录
mkdir dvd          #在pub目录下创建dvd目录
chown ftp:ftp dvd          #修改dvd目录的所有者和所属组为ftp
cp -rf /mnt/*  /var/ftp/pub/dvd/          #复制mnt目录下的镜像文件到dvd目录下
5.配置DHCP服务
vim /etc/dhcp/dhcpd.conf
#确保配置文件内容如下
ddns-update-style interim;
ignore client-updates;
authoritative;
allow booting;          #定义能够pxe启动
allow bootp;          #定义支持bootp
allow unknown-clients;
subnet 192.168.100.0 netmask 255.255.255.0
{
   range 192.168.100.100 192.168.100.200;        #dhcp客户端获取ip的范围  
   option domain-name-servers 192.168.100.1;
   option domain-name "server1.example.com";
   option routers 192.168.100.1;          #网关
   option broadcast-address 192.168.100.255;          #广播地址
   default-lease-time 600;
   max-lease-time 7200;
   next-server 192.168.100.25;          #本机ip
   filename "pxelinux.0";
 }
6.配置tftp服务
vim /etc/xinetd.d/tftp

service tftp
        {
                socket_type             = dgram
                protocol                = udp
                wait                    = yes
                user                    = root
                server                  = /usr/sbin/in.tftpd
                server_args             = -s /tftpboot          #设置默认工作目录
                disable                 = no              #设置开机自启动
                per_source              = 11
                cps                     = 100 2
                flags                   = IPv4
        }

vim /usr/lib/systemd/system/tftp.service

      ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot          #修改默认目录
      ExecStart=/usr/sbin/in.tftpd -s /tftpboot

7.创建相关目录并拷贝所需文件
mkdir tftpboot
chmod 777 tftpboot
cp /usr/share/syslinux/pxelinux.0 /tftpboot
cp /usr/share/syslinux/menu.c32 /tftpboot
cp /usr/share/syslinux/memdisk /tftpboot
cp /usr/share/syslinux/mboot.c32 /tftpboot
cp /usr/share/syslinux/chain.c32 /tftpboot
mkdir /tftpboot/pxelinux.cfg
mkdir /tftpboot/netboot
cp /var/ftp/pub/dvd/images/pxeboot/vmlinuz /tftpboot/netboot/
cp /var/ftp/pub/dvd/images/pxeboot/initrd.img /tftpboot/netboot/

8.开启相关服务并设置为自动启动
    systemctl restart dhcpd
    systemctl enable dhcpd
    systemctl restart xinetd
    systemctl enable xinetd
    systemctl restart vsftpd
    systemctl enable vsftpd
9.配置kisckstart无人值守安装脚本
yum  -y install system-config-kickstart
system-config-kickstart         #进入kickstart图形化界面
配置完之后将ks.cfg文件保存到/var/ftp/pub/目录下
1637217813(1).jpg
1637217884(1).png
1637217915(1).jpg
1637217981(1).jpg
1637218012(1).jpg
1637218038(1).jpg
1637218085(1).jpg
1629305035(1).png
vim  /tftpboot/pxelinux.cfg/default          新建default文件
#default的内容如下:
default menu.c32
prompt 0
timeout 30
MENU TITLE Togogo.net Linux Training
LABEL centos7_x64
MENU LABEL CentOS 7 X64
KERNEL /netboot/vmlinuz
APPEND initrd=/netboot/initrd.img inst.repo=ftp://192.168.100.25/pub/dvd ks=ftp://192.168.100.25/pub/ks.cfg

可能会遇到的坑:

1.新创建一个虚机的时候,内存必须要2GB以上,不然可能会存在无法自动安装系统的情况。
2.自动生产ks.cfg的时候,进文件里面查看一下,如果是bootloader --location=no,则可能装好系统后,无法正常启动,出现黑屏,右上角“——”闪动,如果修改成bootloader --location=mbr,则会正常启动。

附带ks.cfg文件

#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$Cl9ljaI/$8FrD1qPJLukbGuyud6qUK.
# System language
lang en_US
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
firstboot --disable
# SELinux configuration
selinux --disabled


# Firewall configuration
firewall --disabled
# Network information
network  --bootproto=dhcp --device=ens192
# Reboot after installation
reboot
# System timezone
timezone Africa/Abidjan
# Use network installation
url --url="ftp://192.168.100.25/pub/dvd/"
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part swap --fstype="swap" --size=2048
part /boot --fstype="ext4" --size=1024
part / --fstype="ext4" --grow --size=1

%packages
@gnome-desktop
@kde-desktop
@legacy-x
@x11
xterm

%end


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容