PXE自动化安装系统(Centos 7环境)

PXE简介:

PXE是Preboot Execution Environment的缩写,字面上的意思是开机前的执行环境。

要达成PXE必须要有两个环节:

(1)一个是客户端的网卡必须要支持PXE用户端功能,并且开机时选择从网卡启动,这样系统才会以网卡进入PXE客户端的程序;

(2)一个是PXE服务器必须要提供至少含有DHCP以及TFTP的服务!

且其中:

    · DHCP服务必须要能够提供客户端的网络参数,还要告知客户端TFTP所在的位置;

    · TFTP则提供客户端的boot loader及kernel file下载路径。

还要加上NFS/FTP/HTTP(选择一样即可)等提供安装文件(安装镜像的解压文件),才算是比较完整的PXE服务器。一般TFTP和DHCP服务都由同一台服务器提供,且大多数时候还提供NFS/FTP/HTTP服务,所以PXE服务器一般是提供3合一的服务。

环境:

VMware两台虚拟主机
一台DHCP,HTTPD,TFTP服务器,一台测试机
关闭仅主机的vmware中dhcp服务

步骤:

1.安装所需服务

yum install httpd tftp-server dhcp syslinux  system-config-kickstart
systemctl start httpd tftp 

tftp启动可能会报错,查看tftp 69端口存在即可

2.准备yum源

mkdir /var/www/html/centos/7/os/x86_64 -pv          #把ISO镜像文件挂载到http目录下    
mount /dev/sr0 /var/www/html/centos/7/os/x86_64       

                                             

3 生成ks文件

system-config-kickstart                                                         #需要桌面组件

按照自己需要生成kickstart文件
 

mkdir  /var/www/html/ksdir/   创建kickstart文件目录
ls /var/www/html/ksdir/
ks7_mini.cfg
#version=RHEL7
# System authorization information
auth --enableshadow --passalgo=sha512

# Use CDROM installation media
url --url=http://172.25.0.210/centos/7/os/x86_64/   #指定安装方式及此文件路径
# Use text install
text
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8
selinux --disabled    
firewall --disabled
reboot
# Network information
network  --bootproto=dhcp --device=eno16777736 --onboot=off --ipv6=auto
network  --hostname=localhost.localhost
# Root password
rootpw --iscrypted $6$rFE5ahzTuBX6.Pha$mUAp2FBj/qYgNgY6v5EdnCBmBAUkT7cboSIC8azwZr4uKG5RFkvi.4ntmHm/cU/37lM77w7jLoigA61sBajMX.
# System timezone
timezone Asia/Shanghai --isUtc --nontp
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
autopart --type=lvm
# Partition clearing information
clearpart --all
zerombr
%packages
@core
kexec-tools

%end

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end
~  

                                      
 

4 配置dhcp服务

#拷贝模板修改
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
  
vim /etc/dhcp/dhcpd.conf
option domain-name "xxx.com";                                  #指定主机域名
option domain-name-servers 114.114.114.114, 180.76.76.76;      #配置主机DNS
default-lease-time 86400;                                      #设置DHCPIP租期
max-lease-time 864000;                                                                                                    
subnet 172.25.0.0 netmask 255.255.255.0 {                      #指定DHCP IP网段、子网
        range 172.25.0.220 172.25.0.230;                       #可以分配的IP地址范围
        option routers 172.25.0.1;                             #指定路由
        next-server 172.25.0.210;                              #下一个文件服务器 
        filename "pxelinux.0";                                 #指定预启动引导文件
}                                        

systemctl start dhcpd 

5 准备预启动相关的文件

cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/            #从syslinux中拷贝所需文件
cp /usr/share/syslinux/menu.c32    /var/lib/tftpboot/

mkdir /var/lib/tftpboot/centos7
cp /var/www/html/centos/7/os/x86_64/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos7  
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /var/www/html/centos/7/os/x86_64/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default  

[root@centos7 tftpboot]#tree /var/lib/tftpboot/                   #tftp路径下的文件
        /var/lib/tftpboot/
        ├── centos6
        │   ├── initrd.img
        │   └── vmlinuz
        ├── centos7
        │   ├── initrd.img
        │   └── vmlinuz
        ├── menu.c32
        ├── pxelinux.0
        └── pxelinux.cfg
            └── default
        
3 directories, 7 files


6 准备启动菜单

vim /var/lib/tftpboot/pxelinux.cfg/default        #编辑安装界面菜单

default menu.c32
timeout 600                                                                        
menu title CentOS Auto Install

label mini7
  menu label Install CentOS ^Mini 7
  kernel centos7/vmlinuz
  append initrd=centos7/initrd.img ks=http://172.25.0.210/ksdir/ks7_mini.cfg    #指定ks应答文件路径

label local
  menu default                                      #菜单默认本地启动,需手动选择安装Centos7
  menu label Boot from ^local drive
  localboot 0xffff

7 新建虚拟机启动

选择第一个,会自动化按照之前配置文件按照系统

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值