PXE批量装机

批量装机(PXE+Kickstart 无人值守安装服务)

PXE简介

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

PXE工作流程

网卡上的PXE芯片有512字节,存放了DHCP和TFTP的客户端
启动计算机并选择网卡启动
PXE上的DHCP客户端会向DHCP服务器,申请IP地址
DHCP服务器分配一个IP址地给它,同时DHCP配置文件还告诉PXETFTP服务器的地址,并去下载一个pxelinux.0的文件    (1)next-server 192.168.128.140;(2)filename "pxelinux.0";  
pxelinux.0告诉PXE要址载的配置文件是pxelinux.cfg目录下面的default
PXE下载并依据配置文件的内容下载启动必须的文件,并通过kickstart.cfg配置文件开始安装系统

img

1、PEX

PXE(Preboot eXecute Environment,预启动执行环境)是由 Intel 公司开发的技术,可以让计算机通过网络来启动操作系统(前提是计算机上安装的网卡支持 PXE 技术),主要用于在无人值守安装系统中引导客户端主机安装 Linux 操作系统。

2、syslinux

SYSLinux 是一个用于提供引导加载的服务程序。与其说 SYSLinux 是一个服务程序,不如说更需要里面的引导文件,在安装好 SYSLinux 服务程序软件包后, /usr/share/syslinux 目录中会出现很多引导文件。

3、TFTP

TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。

4、FTP(vsftpd)

vsftpd 是“very secure FTP daemon”的缩写,是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。

5、dhcp(用dnsmasq代替)

DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。它服务那些只在本地适用的域名,这些域名是不会在全球的DNS服务器中出现的。DHCP服务器和DNS服务器结合,并且允许DHCP分配的地址能在DNS中正常解析,而这些DHCP分配的地址和相关命令可以配置到每台主机中,也可以配置到一台核心设备中(比如路由器),DNSmasq支持静态和动态两种DHCP配置方式。

6、Kickstart

Kickstart 是一种无人值守的安装方式,其工作原理是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg 文件,当安装过程中需要填写参数时则自动匹配 Kickstart 生成的文件。

在这里插å¥å›¾ç‰‡æè¿°

#############################################################################PXE远程安装

1、配置dnsmasq服务

安装dnsmasq

yum -y install dnsmasq

修改dnsmasq配置文件

mv /etc/dnsmasq.conf /etc/dnsmasq.conf.bak          #备份原配置文件

vim /etc/dnsmasq.conf   #打卡配置文件,在配置文件中写入如下内容
interface=ens33	 	#使用的接口
domain=test 	#定义的域名
dhcp-range= ens33,192.168.2.100,192.168.2.253,255.255.255.0,1h 	#dhcp的IP地址池
dhcp-boot=pxelinux.0,pxeserver,192.168.2.10	#与启动的服务器地址
dhcp-option=3,192.168.2.10 		#dhcp的网关
dhcp-option=6,192.168.2.10, 8.8.8.8 		#分发的dns地址
server=8.8.4.4 # dns转发地址
dhcp-option=28,192.168.2.255 	#局域网广播地址
dhcp-option=42,0.0.0.0 		#网络时间服务器
pxe-prompt="Press F8 for menu.", 60 	#指定f8按键
pxe-service=x86PC, "Install CentOS 7 from network server 192.168.2.10", pxelinux  #介绍以及安装选项
enable-tftp 	#允许使用tftp
tftp-root=/var/lib/tftpboot 	#设置tftp根目录

2、安装TFTP服务程序

安装TFTP

yum -y install tftp-server

3、配置syslinux预启动服务程序

安装syslinux

yum -y install syslinux

把 SYSLinux 提供的引导文件复制到 TFTP 服务程序的默认目录中

cp -r /usr/share/syslinux/* /var/lib/tftpboot

将光盘镜像中自带的一些引导文件复制到TFTP服务程序的默认目录中

mount /dev/cdrom /mnt          #挂在光盘
mkdir /var/lib/tftpboot/centos7    #创建目录
cp /mnt/images/pxeboot/vmlinuz  /var/lib/tftpboot/centos7
cp /mnt/images/pxeboot/initrd.img  /var/lib/tftpboot/centos7

4、配置PXE服务

TFTP 服务程序的目录中新建 pxelinux.cfg 目录

mkdir /var/lib/tftpboot/pxelinux.cfg

编写配置文件(四种方式)

vim /var/lib/tftpboot/pxelinux.cfg/default

default menu.c32
prompt 0
timeout 300
ONTIMEOUT local
menu title ########## PXE Boot Menu ##########
label 1
menu label ^1) Install CentOS 7 x64 with Local Repo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=ftp://192.168.2.10/pub devfs=nomount
label 2
menu label ^2) Install CentOS 7 x64 with http://mirror.centos.org Repo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=http://mirror.centos.org/centos/7/os/x86_64/ devfs=nomount ip=dhcp
label 3
menu label ^3) Install CentOS 7 x64 with Local Repo using VNC
kernel centos7/vmlinuz
append  initrd=centos7/initrd.img method=ftp://192.168.2.10/pub devfs=nomount inst.vnc inst.vncpassword=password
label 4
menu label ^4) Boot from local drive

5、配置FTP服务

yum -y install vsftpd      #安装FTP
cp -r /mnt/*  /var/ftp/pub/    #把光盘复制到ftp程序默认的文件夹下
chmod -R 755 /var/ftp/pub     #修改权限,保证这个文件夹有wx权限

6、关闭防火墙和SElinux并重启服务

systemctl stop firewalld
setenforce 0

systemctl restart dnsmasq
systemctl restart vsftpd
systemctl enable dnsmasq
systemctl enable vsftpd

7、验证结果(虚拟机内存要调成2GB或以上,否则在安装过程中会报错)

1545709638895

1545709670179

1545709727562

1545709817501

1545709939530

#############################################################################

PXE+Kickstart无人值守安装

1、配置dnsmasq服务

安装dnsmasq

mv /etc/dnsmasq.conf /etc/dnsmasq.conf.bak          #备份原配置文件

vim /etc/dnsmasq.conf   
interface=ens33	 	
domain=test 	
dhcp-range= ens33,192.168.2.100,192.168.2.253,255.255.255.0,1h 	
dhcp-boot=pxelinux.0,pxeserver,192.168.2.10	
dhcp-option=3,192.168.2.10 		
dhcp-option=6,192.168.2.10, 8.8.8.8 	
server=8.8.4.4 
dhcp-option=28,192.168.2.255 	
dhcp-option=42,0.0.0.0 		
#pxe-prompt="Press F8 for menu.", 60 	#注释掉开机的按F8的键
#pxe-service=x86PC, "Install CentOS 7 from network server 192.168.2.10", pxelinux  #注释掉开机提示的信息  
enable-tftp 	
tftp-root=/var/lib/tftpboot 	

2、安装TFTP服务程序

安装TFTP

yum -y install tftp-server

3、配置syslinux预启动服务程序

安装syslinux

yum -y install syslinux

把 SYSLinux 提供的引导文件复制到 TFTP 服务程序的默认目录中

cp -r /usr/share/syslinux/* /var/lib/tftpboot

将光盘镜像中自带的一些引导文件复制到TFTP服务程序的默认目录中

mount /dev/cdrom /mnt          #挂在光盘
mkdir /var/lib/tftpboot/centos7    #创建目录
cp /mnt/images/pxeboot/vmlinuz  /var/lib/tftpboot/centos7
cp /mnt/images/pxeboot/initrd.img  /var/lib/tftpboot/centos7

4、配置PXE服务

TFTP 服务程序的目录中新建 pxelinux.cfg 目录

mkdir /var/lib/tftpboot/pxelinux.cfg

编写配置文件

vim /var/lib/tftpboot/pxelinux.cfg/default

default ks
prompt 0
label ks
kernel centos7/vmlinuz
append ks=ftp://192.168.2.10/pub/ks.cfg initrd=centos7/initrd.img devfs=nomount

5、配置FTP服务

yum -y install vsftpd      #安装FTP
cp -r /mnt/*  /var/ftp/pub/    #把光盘复制到ftp程序默认的文件夹下
chmod -R 755 /var/ftp/pub     #修改权限,保证这个文件夹有wx权限

6、将/root下的anacondaks.cfg复制到vsftpd 服务程序的工作目录中

cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
chmod +r /var/ftp/pub/ks.cfg 	#设置该文件的权限,确保所有人都有可读的权限

修改/var/ftp/pub/ks.cfg配置文件

vim /var/ftp/pub/ks.cfg   #修改如下内容

#version=DEVEL
install     #开始安装

# Use CDROM installation media
url --url="ftp://192.168.2.10/pub/"     #把光盘镜像安装方式修改成 FTP 协议

# System timezone
timezone Asia/Shanghai --isUtc         #选择时区

# Partition clearing information        
clearpart --all --initlabel         #清空所有磁盘内容并初始化磁盘
reboot

7、关闭防火墙和SElinux并重启服务

systemctl stop firewalld
setenforce 0

systemctl restart dnsmasq
systemctl restart vsftpd
systemctl enable dnsmasq
systemctl enable vsftpd

8、测试结果

1545712145916

1545712180185

1545712267862

!!!无人值守配置的root密码,就是服务器的root密码

关键字 含义

install	告知安装程序,这是一次全新安装,而不是升级upgrade。
url --url=" "	通过FTP或HTTP从远程服务器上的安装树中安装。
url --url="http://10.0.0.7/CentOS-6.7/"
url --url ftp://<username>:<password>@<server>/<dir>
nfs	从指定的NFS服务器安装。
nfs --server=nfsserver.example.com --dir=/tmp/install-tree
text	使用文本模式安装。
lang	设置在安装过程中使用的语言以及系统的缺省语言。lang en_US.UTF-8
keyboard	设置系统键盘类型。keyboard us
zerombr	清除mbr引导信息。
bootloader	系统引导相关配置。
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
--location=,指定引导记录被写入的位置.有效的值如下:mbr(缺省),partition(在包含内核的分区的第一个扇区安装引导装载程序)或none(不安装引导装载程序)。
--driveorder,指定在BIOS引导顺序中居首的驱动器。
--append=,指定内核参数.要指定多个参数,使用空格分隔它们。
network	为通过网络的kickstart安装以及所安装的系统配置联网信息。
network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --hostname=CentOS6
--bootproto=[dhcp/bootp/static]中的一种,缺省值是dhcp。bootp和dhcp被认为是相同的。
static方法要求在kickstart文件里输入所有的网络信息。
network --bootproto=static --ip=10.0.0.100 --netmask=255.255.255.0 --gateway=10.0.0.2 --nameserver=10.0.0.2
请注意所有配置信息都必须在一行上指定,不能使用反斜线来换行。
--ip=,要安装的机器的IP地址.
--gateway=,IP地址格式的默认网关.
--netmask=,安装的系统的子网掩码.
--hostname=,安装的系统的主机名.
--onboot=,是否在引导时启用该设备.
--noipv6=,禁用此设备的IPv6.
--nameserver=,配置dns解析.
timezone	设置系统时区。timezone --utc Asia/Shanghai
authconfig	系统认证信息。authconfig --enableshadow --passalgo=sha512
设置密码加密方式为sha512 启用shadow文件。
rootpw	root密码
clearpart	清空分区。clearpart --all --initlabel
--all 从系统中清除所有分区,--initlable 初始化磁盘标签
part	磁盘分区。
part /boot --fstype=ext4 --asprimary --size=200
part swap --size=1024
part / --fstype=ext4 --grow --asprimary --size=200
--fstype=,为分区设置文件系统类型.有效的类型为ext2,ext3,swap和vfat。
--asprimary,强迫把分区分配为主分区,否则提示分区失败。
--size=,以MB为单位的分区最小值.在此处指定一个整数值,如500.不要在数字后面加MB。
--grow,告诉分区使用所有可用空间(若有),或使用设置的最大值。
firstboot	负责协助配置redhat一些重要的信息。
firstboot --disable
selinux	关闭selinux。selinux --disabled
firewall	关闭防火墙。firewall --disabled
logging	设置日志级别。logging --level=info
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值