PXE实现批量安装部署(CentOS7)

一、PXE简介

PXE(preboot execute environment)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。

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

二、启动步骤详解

1、服务器加电启动,从DHCP服务器获取IP地址并加载(PXEClient)。
2、通过TFTP服务器获取网络引导程序(pxelinux.0)。
3、引导程序读取配置文件(pxelinux.cfg本例中文件名为:default)。
4、引导程序加载文件系统初始化(initrd)程序和内核初始镜像(vmlinuz)、自动应答程序(ks.cfg)。
5、按自动应答文件中指定的网络安装方式,以FTP方式安装linux系统。

三、服务端安装配置

pxe环境服务器地址:192.168.100.35
pxe客户机分配地址:192.168.100.97 - 192.168.100.125
安装步骤:
1)配置DHCP,用于给客户端提供IP地址及其它信息
2)配置TFTP服务器,用于提供客户端PXE引导所必须的文件
3)配置FTP服务器,用于存放安装文件
4)配置Kickstart,用于自动应答安装
5)使用PXE功能引导客户机
关闭防火墙

启动: systemctl start firewalld
查看状态: systemctl status firewalld 
停止: systemctl disable firewalld
禁用: systemctl stop firewalld
getenforce
##设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式
setenforce 0
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled 

1、安装DHCP和TFTP

DHCP 和 TFTP 服务可以选择单独分别去安装,也可以通过安装 dnsmasq 服务,来实现 DHCP 和 TFTP 的功能。

(1)安装 dnsmasq 服务

yum install dnsmasq –y
vi /etc/dnsmasq.conf
systemctl start  dnsmasq
systemctl enable dnsmasq
###/etc/dnsmasq.conf内容太长了,直接粘贴在最后面
bogus-priv
filterwin2k
#interface=eth0
dhcp-range=192.168.100.99,192.168.100.125,12h
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/var/tftp    # tftp目录默认是没有的,需要手动创建
dhcp-authoritative

(2)拷贝启动文件到/var/tftp,上传linux系统镜像到服务器上。

mkdir /media/cdrom
mount  mount -o loop *.iso  /media/cdrom/
mkdir /var/tftp/centos7
cp /media/cdrom/images/pxeboot/vmlinuz    /var/tftp/centos7/    # 拷贝内核镜像文件
cp /media/cdrom/images/pxeboot/initrd.img  /var/tftp/centos7/  # 拷贝文件系统镜像

(3)生成pxe启动文件pxelinux.0

yum install -y syslinux                           # 安装pxelinux.0所需要的包
rpm -ql syslinux | grep "pxelinux.0"              # 查询文件所在目录
cp /usr/share/syslinux/pxelinux.0 /var/tftp/      # 拷贝pxelinux.0文件到tftp根目录

(4)准备默认的菜单配置文件

mkdir /var/tftp/pxelinux.cfg/         # 创建pxelinux.cfg目录,固定目录名称
vi /var/tftp/pxelinux.cfg/default    # default文件,必须为这个名称
# 编辑内容如下
default centos7
prompt 1
timeout 15
display menu
label centos7
  kernel centos7/vmlinuz
  append initrd=cenots7/initrd.img ks=ftp://192.168.100.98/pub/ks-centos7.cfg    # 这个地方指定了ks.cfg文件下载路径,后边会生成该文件

(5)kickstart配置文件ks-centos7.cfg

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use FTP installation media
url --url="ftp://192.168.100.98/pub/centos7"
# Root password
rootpw --iscrypted $1$lgzpzCCE$Y6xpvPBLom/J4zAipUjfr.  ##此密码为123.com
# System authorization information
auth useshadow passalgo=sha512
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
# ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8
# SELinux configuration
selinux disabled
# Installation logging level
logging level=info
# System timezone
timezone Asia/Shanghai --isUtc
# System bootloader configuration
# Reboot afer installing
reboot  ##一定要有此 选项否则操作系统安装完后不会自动重启。
# Network information
network --bootproto=static --ip=192.168.100.99 --netmask=255.255.255.224 --gateway=192.168.100.126
network --hostname=localhost.localdomain
######
bootloader location=mbr
clearpart --all --initlabel
part swap --asprimary --fstype="swap" --size=1024
part /boot --fstype xfs --size=300
part pv.01 --size=1 --grow
volgroup root_vg01 pv.01
logvol / --fstype xfs --name=lv_01 --vgname=root_vg01 --size=1 --grow
%packages    ###要安装的包
@^minimal
@core
acpid
iputils
man
net-tools
ntp
ntpdate
parted
vim-enhanced
wget
%end   ###以%end结尾
#%addon com_redhat_kdump --disable --reserve-mb='auto' 
#%end

2、安装FTP

简单文件传输协议(TFTP)主要用于为客户机与服务器之间进行简单文件传输的协议。在 PXE 早期启动过程中,主要通过 TFTP 协议传输”pxelinux.0”。文件传输协议(FTP),适用于大量文件传输的情形,在后期安装过程,主要通过 FTP 协议传输 Linux 操作系统的安装包。
1、安装vsftpd服务
2、提供操作系统镜像文件
FTP 默认配置即可,我们需要适用匿名用户。通过ftp安装操作系统,我们需要把操作系统镜像文件拷贝到这个匿名用户目录。前面已经把镜像上传并mount了。现在直接拷贝,为每个系统版本新建一个目录
mkdir /var/ftp/pub/centos7
cp -fr /media/cdrom/* /var/ftp/pub/centos7/ # /var/ftp/pub是ftp的匿名用户目录
3、启动ftp服务

yum install -y vsftpd
systemctl start  vsftpd    # 启动ftp服务
systemctl enable vsftpd    # 设置开机启动
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念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