What's PXE ?
PXE简单地说就是通过一些服务和预先设置好的文件来实现操作系统的无人值守安装。
Why are you installing with PXE ?
在生产环境中,公司有可能一次性上架数百台甚至数千台服务器,一台一台安装操作系统听上去是一件很恐怖的事。通过PXE安装操作系统,可以大大减轻运维工程师的工作。
How to install with PXE ?
首先,我们先介绍几个过程中很重要的几个服务。
- DHCP(Dynamic Host Configuration Protocol , 动态主机配置协议)
- TFTP(Trivial File Transfer Protocol,简单文件传输协议)
- FileServer(yum repository),可以由httpd、ftp服务提供
DHCP
DHCP是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务提供商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。其中UDP 67 和 68 端口,分别作为DHCP Server 和 DHCP Client的服务端口。在PXE中,DHCP主要负责给服务器分配IP地址,并指明TFTP服务器的位置。
TFTP
TFTP是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务,端口号为69。在PXE中,TFTP主要提供服务器启动和引导操作系统的一些重要文件。
FileServer
主要为PXE环境提供安装所需要的yum仓库,可以使用httpd或者ftp。
PXE环境的安装示例:
安装环境:
CentOS 7
所需软件:
~]#yum install -y dhcp
~]#yum install -y tftp-server
~]#yum install -y syslinux
~]#yum install -y httpd
~]#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf #复制一份dhcp的配置文件模板到/etc/dhcp/目录下
~]#vim /etc/dhcp/dhcpd.conf #配置dhcp配置文件
option domain-name "jrc.com";
option routers 192.168.10.5;
option domain-name-servers 192.168.10.1;
default-lease-time 43200;
max-lease-time 86400;
subnet 192.168.10.0 netmask 255.255.255.0 { #配置作用域
range 192.168.10.101 192.168.10.110;
filename "pxelinux.0"; #提供Filename
next-server 192.168.10.5; #提供Filename的TFTP服务器地址
}
~]#cp /usr/share/syslinux/pxelinux.0 /var/libtftpboot/ #将syslinux中的引导文件复制到TFTP共享目录下
~]#mount -r /dev/cdrom /mnt #将镜像光盘挂载到/mnt目录
~]#cp /mnt/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/ #复制系统引导过程中的所需文件
~]#mkdir /var/lib/tftpboot/pxelinux.cfg/
~]#vim /var/lib/tftpboot/pxelinux.cfg/default #创建default文本,配置引导界面中的各选项配置
default menu.c32
prompt 5
timeout 30
MENU TITLE CentOS 7 PXE Menu
LABEL linux_autoinst
MENU LABLE Install CentOS7 x86_64 auto
KERNEL vmlinuz
APPEND initrd=initrd.img inst.repo=http://192.168.10.5/CentOS/x86_64
~]#mkdir /var/www/html/CentOS7/x86_64
~]#umount /mnt #卸载之前挂载的光盘
~]#mount /dev/cdrom /var/www/html/CentOS7/x86_64 #挂载光盘至指定目录下
~]#vim /var/www/html/CentOS7/centos7.cfg 创建kickstart配置文件
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# X Window System configuration information
xconfig --startxonboot
# Keyboard layouts
# old format: keyboard us
# new format:
keyboard --vckeymap=cn --xlayouts='cn'
# Reboot after installation
reboot
# Root password
rootpw --iscrypted $1$HDHf2v4i$LMo.xGHfxQDOf8e043C.g/
# System timezone
timezone Asia/Shanghai
# Use network installation
url --url="http://192.168.10.5/CentOS7/x86_64" #这是安装的repository地址.
# System language
lang zh_CN
user --groups=wheel --name=mageedu --
password=$6$1eWrOetY$DfLZgquGiOaNkwpEF4ItMipz.1kpn7Q.s6oXyoW2bALkWesRWHCCACICkJ.2zBXDbwEw0ibR.wxStLI41ZhfF1 --iscrypted --gecos="MageEdu"
~]#systemctl start dhcpd.service #启动dhcp服务
~]#systemctl start tftp.socket #启动tftp服务
~]#systemctl start httpd.service #启动httpd服务
所有的准备已经做好,只要有VM的虚拟机接入就可以了。
attention:需要将VM上的DHCP给关掉。
网友评论