1、pxe简介

PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,

由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。


2、pxe工作流程

1. PXE Client 从自己的PXE网卡启动,向本网络中的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 方式之一进行安装;


centos7自动化安装_第1张图片

3、实验环境

实验环境:VMware Workstation 10


系统平台:CentOS7


网络模式:桥接


DHCP / TFTP /FTP IP:172.16.15.10


搭建本地yum源

[root@localhost ~]# cat /etc/yum.repos.d/CentOS7-Base.repo 

[base]

name=base

baseurl=file:///mnt

enabled=1

gpcheck=0

gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7


安装相关的软件

ftp  tftp  dhcp


4、配置tftp如下

service tftp

{

        socket_type             = dgram

        protocol                = udp

        wait                    = yes

        user                    = root

        server                  = /usr/sbin/in.tftpd

        server_args             = -s /var/lib/tftpboot

        disable                 = no

        per_source              = 11

        cps                     = 100 2

        flags                   = IPv4

}


[root@localhost ~]# ln -s /var/lib/tftpboot/  /

[root@localhost ~]# systemctl start tftp.socket

[root@localhost ~]# systemctl start tftp.service   启动tftp


[root@ localhost tftpboot]#cd  /tftpboot

[root@ localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0 .

 [root@ localhost tftpboot]# cp /mnt/cdrom/p_w_picpaths/pxeboot/* .

 [root@ localhost tftpboot]# mkdir pxelinux.cfg

 [root@ localhost tftpboot]# cp /mnt/cdrom/isolinux/isolinux.cfg pxelinux.cfg/defult


注意如果没有pxelinux.0文件  安装syslinux即可



[root@localhost tftpboot]# vi pxelinux.cfg/default 

default 7.0

prompt 1

timeout 60000


display boot.msg

F1 boot.msg

F2 options.msg

F3 general.msg

F4 param.msg

F5 rescue.msg


label 7.0    自定义标签

kernel vmlinuz

append ks=ftp://172.16.15.10/ks.cfg initrd=initrd.img   采用ftp引导,也可以是http,nfs等


label text

kernel vmlinuz

append initrd=initrd.img text

label ks

kernel vmlinuz

append ks initrd=initrd.img

label local

localboot 1

label memtest86

kernel memtest

append


5、ftp相关

[root@localhost tftpboot]# cd /var/ftp/

[root@localhost ftp]# cp -ar /mnt/* .  将镜像内容全部复制到ftp根目录下面


6、配置dhcp

[root@localhost ftp]# cat /etc/dhcp/dhcpd.conf 

#   see /usr/share/doc/dhcp*/dhcpd.conf.example

next-server 172.16.15.10;

filename "pxelinux.0";

allow booting;

allow bootp;


subnet 172.16.15.0 netmask 255.255.255.0{

option routers 172.16.15.254;

range dynamic-bootp 172.16.15.100 172.16.15.200;


}


7、编辑ks.cfg文件如下

[root@localhost ftp]# cat ks.cfg

# platform=x86, AMD64, or Intel EM64T


# Use text mode install

text

# Use graphical install

#graphical


# Install OS instead of upgrade

install


# Use CDROM media

#cdrom


# Use NFS installation media

#nfs --server=172.16.15.10 --dir=/centosinstall


# Use HTTP installation media

# url --url http://192.168.0.100:7000/tftpboot


# Use FTP installation media

#url --url ftp://:@/

url --url ftp://172.16.15.10/


# System language

lang en_US.UTF-8

# System keyboard

keyboard us


# Network information

#network --bootproto=dhcp --device=eth0 --hostname example.sz.com --onboot=on

#network --bootproto=dhcp --device=eth0 --hostname vmserver1.sz.com --onboot=on


#network --bootproto=dhcp --device=enp130s0f0 --hostname martin --onboot=on

network --bootproto=dhcp  --hostname martin --onboot=on


#Root password

rootpw  123456


#firewall --enabled --ssh  

firewall --disable  


# System authorization information

authconfig --useshadow  --enablemd5 


# SELinux configuration

selinux --disabled


# System timezone

timezone Asia/Shanghai


# System bootloader configuration

bootloader --location=mbr


# Partition clearing information

#clearpart --all --initlabel --drives=sda

#part /boot --fstype ext3 --size=100 --ondisk=sda

#part pv.01 --size=4096 --grow --ondisk=sda

#volgroup VolGroup00 --pesize=32768 pv.01

#logvol / --fstype=ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 

#logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=512


# Partition clearing information

clearpart --all --initlabel 

# Soft RAID1 partitioning information

part swap --fstype="swap" --ondisk=sda --size=4096

part raid.01 --fstype="raid" --grow --ondisk=sda --size=1

part swap --fstype="swap" --ondisk=sdb --size=4096

part raid.02 --fstype="raid" --grow --ondisk=sdb --size=1

raid / --device=md0 --fstype="ext4" --level=1 raid.01 raid.02


# Reboot after installation

reboot


# Do not configure the X Window System; if to configure it, uncomment following line

skipx

# X Window System configuration information

#xconfig  --defaultdesktop=GNOME --depth=32 --resolution=1024x768



%packages

@ additional-devel

@ base

@ core

@ debugging

@ gnome-desktop

@ development

@ mariadb

@ emacs

@ web-server

@ network-file-system-client

@ java-platform

@ platform-devel

@ php


expect

iptraf-ng

libaio-devel

libpcap-devel

lksctp-tools

lrzsz

nasm

net-snmp-utils

php-mysql

php-pear

php-soap

system-config-kickstart


# Add these system perfomance enhanced tools

vsftpd

logwatch

postfix

nmap-ncat

nmap

ftp

lsscsi

# Update the sysstat version from 9.0.4 to 10.1.6

sysstat


%end


8、开启客户端安装,进入pxe引导模式

centos7自动化安装_第2张图片

centos7自动化安装_第3张图片


可以看到给客户端分配的IP地址是 172.16.15.118,输入7.0开始自动化安装

centos7自动化安装_第4张图片


下次有机会我们在介绍cobbler自动化安装操作系统