Linux-PXE预启动执行环境实现系统批量部署

PXE(Preboot Execute Environment)预启动执行环境,为Client/Server架构。在启动过程中,终端要求服务器分配IP地址,再通过TFTP协议下载启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置。

首先我们需要搭建一些服务,如HTTP、TFTP、DHCP等。

[root@server ~]# yum install httpd dhcp tftp-server syslinux -y
###
httpd            ##通过http共享安装资源
dhcp             ##分配ip地址,并让客户端读取pexlinux.0文件
pexlinux.0       ##预安装环境 头文件,用来指定读取后续文件的程序
tftp-server      ##提供tftp协议,令客户主机可以读取到预安装环境
syslinux         ##提供pexlinux.0文件

启用tftp服务

##修改配置文件
[root@server ~]# vi /etc/xinetd.d/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          ##tftp服务开启
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

##重启服务
[root@server ~]# systemctl restart xinetd

##查看状态
[root@server ~]# chkconfig --list

启用dhcp服务

[root@server ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
[root@server ~]# vim /etc/dhcp/dhcpd.conf 

# option definitions common to all supported networks...
option domain-name "example.com";         ##客户主机域名
option domain-name-servers 10.0.0.10;     ##客户主机获得到的dns
default-lease-time 600;                   ##默认租约期
max-lease-time 7200;                      ##最长租约期
log-facility local7;                      ##日志级别

subnet 172.25.254.0 netmask 255.255.255.0 {       ##网段、子网掩码
  range 172.25.254.50 172.25.254.70;              ##IP地址池
  option routers 172.25.254.80;                   ##客户端获得到的网关
  filename "pxelinux.0";                          ##客户主机获得的预安装环境 头文件
  next-server 172.25.254.143;                     ##指定头文件所在主机的ip
}

[root@server ~]# systemctl start dhcpd
[root@server ~]# systemctl enable dhcpd
ln -s '/usr/lib/systemd/system/dhcpd.service' '/etc/systemd/system/multi-user.target.wants/dhcpd.service'
配置安装源和预安装环境
###安装源###
[root@server ~]# systemctl start httpd
[root@server ~]# mkdir /var/www/html/rhel7.0
[root@server ~]# mount /iso/rhel-server-7.0-x86_64-dvd.iso /var/www/html/rhel7.0/
[root@server ~]# echo mount /iso/rhel-server-7.0-x86_64-dvd.iso /var/www/html/rhel7.0/ >> /etc/rc.d/rc.local
[root@server ~]# chmod +x /etc/rc.d/rc.local

###预安装环境###
[root@server ~]# cp /var/www/html/rhel7.0/isolinux/* /var/lib/tftpboot/
[root@server ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@server ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@server ~]# cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

###准备安装自动应答文件###
[root@server ~]# yum install system-config-kickstart.noarch -y
[root@server ~]# system-config-kickstart             ##执行kickstart,依次选择相关配置,保存
[root@server ~]# vim /var/www/html/ks.cfg 
%packages            ##指定安装包
@base                ##安装包
%end

%post                ##安装完成后执行内容
安装后执行的命令
%end

###设置预安装###
[root@server ~]# vim /var/lib/tftpboot/pxelinux.cfg/default 
###菜单样式###
menu clear
menu background splash.png                    ##背景图片
menu title 
menu vshift 8
menu rows 18
menu margin 8
#menu hidden
menu helpmsgrow 15
menu tabmsgrow 13

###菜单内容###
label linux
  menu default                ##光标默认停留位置
  menu label ^Install Red Hat Enterprise Linux 7.0        ##显示名
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=http://172.25.254.143/rhel7 ks=http://172.25.254.143/ks.cfg quiet    ##安装源及应答文件位置
###可以设置多个应答文件和安装源

通过网络启动即可进入我们配置的菜单了

猜你喜欢

转载自blog.csdn.net/xin1889/article/details/80926597
今日推荐