MENU

PXE+Kickstart批量装机

• 2020 年 02 月 17 日 • 默认分类,Linux技术

简介

PXE(预启动执行环境)是由intel公司开发的技术,可以让计算机通过网络来启动操作系统(前提是网卡支持pxe技术),主要用于在无人值守安装系统中引导客户端主机安装linux操作系统,kickstart是一种无人值守的安装方式,工作原理是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg文件,当安装过程中需要填写参数时则自动匹配,kickstart生成的文件,所有只要kickstart文件包含了安装过程中需要人工填写的所有参数,从理论上来讲完全不需要人工干预

工作过程

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 方式之一进行安装

1.jpg

Kickstart安装要求

1.网卡必须支持PXE引导
2.客户端需要有与Kickstart 通信的IP地址,这里一般都是通过DHCP自动分配IP地址来实现
3.提供引导所需的文件,内核文件,内核镜像文件等,此时一般通过tftp-server等实现
4.kickstart文件,它主要实现自动化安装的过程,比如配置主机名、添加用户、安装系统后相关操作
5.提供安装源,一般就是NFS/ftp/httpd等

工具:dhcp + tftp + syslinux + kickstart + vsftpd

可以结合httpd进行部署,这里不详细说明

PXE服务器配置详解

环境

服务器系统:centos7.3
网卡地址:192.168.3.0/24
光盘镜像:centos-server-7.3-x86_64-dvd.iso
安装工具:dhcp + tftp + syslinux + kickstart + vsftpd

部署

  1. 挂载系统光盘到/media/cdrom并搭建本地yum源或网络源

      省略
  2. 使用yum安装需要的服务dhcp、tftpserver、syslinux、kickstart

    [root@cenos2 ]# yum install -y dhcp vsftpd tftp tftp-server syslinux system-config-kickstart

                        ##使用yum安装需要的软件包
    
  3. 配置dhcp服务器并启动dhcpd服务

    [root@cenos2 ]# vim /etc/dhcp/dhcpd.conf ##编辑dhcp主配置文件
    :r /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example ##读入dhcp配置模板文件
    ---------------------------修改或添加以下参数-----------------------------
    subnet 192.168.3.0 netmask 255.255.255.0 {
    range 192.168.3.200 192.168.3.220;
    next-server 192.168.3.1; #ip不加引号,设置tftp地址
    filename "pxelinux.0"; ##设置pxe引导文件名称
    }
    [root@cenos2]# systemctl restart dhcpd ##启动dhcpd服务

  4. 编辑tftp配置文件开启tftp并重启服务

    vim /etc/xinetd.d/tftp ##编辑tftp配置文件
    -----------------------将下列参数改为no---------------------
    {

        disable                 = no #将yes改为no

    }
    [root@cenos2]# systemctl restart tftp ##启动tftp服务程序

5.准备内核、初始化镜像、pxe引导、启动菜单文件复制到tftp目录,tftp的默认根目录为/var/lib/tftpboot/
内核和初始化文件:vmlinuz和initrd.img,文件光盘目录的Images/pxeboot目录下
Pxe引导文件:pxelinux.0由syslinux软件提供,目录在/usr/shar/syslinux/目录下
启动菜单文件:在光盘ioslinux/isolinux.cfg文件,复制后更名default

[root@cenos2 network-scripts]# cd /var/lib/tftpboot/    #切换到tftp目录
[root@cenos2 tftpboot]# mkdir pxelinux.cfg    #在tftp根目录创建启动菜单存放目录
[root@cenos2 tftpboot]# cp /media/cdrom/images/pxeboot/initrd.img .
                    #将初始化文件复制到tftp根目录
[root@cenos2 tftpboot]# cp /media/cdrom/images/pxeboot/vmlinuz .
                    #将内核文件复制到tftp根目录
[root@cenos2 tftpboot]# cp /usr/share/syslinux/pxelinux.0 .
                    #将pxe引导文件复制到tftp根目录
[root@cenos2 tftpboot]# cp /media/cdrom/isolinux/isolinux.cfg ./pxelinux.cfg/default
        #将启动菜单复制到tftp根目录的pxelinux.cfg目录下,更名为default
[root@cenos2 tftpboot]# vim ./pxelinux.cfg/default        #编辑启动菜单文件

----------------------------修改以下行的内容------------------------------

  原1行 default vesamenu.c32
  改1行 default linux
  原64行 append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
  改64行 append initrd=initrd.img inst.stage2=ftp://192.168.3.1 ks=ftp://192.168.3.1/ks.cfg quiet

6.复制所有系统镜像文件到vsftp根目录下,vsftp默认根目录为/var/ftp/

[root@cenos2 tftpboot]# cp -rf /media/cdrom/* /var/ftp/    ##复制镜像到vsftp根目录

7.安装kickstart工具生成自动应答文件或者编辑一个自动应答文件,将其保存到vsftp根目录
这里用编辑的方式新建自动应答文件

[root@cenos2 tftpboot]# vim /var/ftp/ks.cfg        //编辑自动应答文件
----------------------------添加以下内容-----------------------------------
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
keyboard 'us'               #设置键盘语言
rootpw --plaintext putianhui                #设置管理员密码
url --url="ftp://192.168.3.1/"              #设置安装源的路径这里用的ftp
lang zh_CN                                      #设置安装语言为中文
auth  --useshadow  --passalgo=md5
graphical
firstboot --disable
selinux --disabled                              #设置selinux为关闭
firewall --disabled                             #设置防火墙为关闭
network  --bootproto=dhcp --device=eth0 #网卡的ip获取类型和网卡的名称
reboot                                          #设置安装成功之后自动重启
timezone Asia/Shanghai                      #设置时区为亚洲shagnhai
bootloader --location=mbr
zerombr
clearpart --all --initlabel
part / --fstype="xfs" --size=15000          #设置磁盘挂载位置和分配磁盘大小15G
%packages                #到end结束是复制anaconda中的安装脚本
@desktop-debugging
@development
@gnome-desktop
@remote-desktop-clients
vinagre
%end

8.重启dhcpd、vsftpd、tftp服务,然后关闭防火墙和selinux

[root@cenos2 tftpboot]# systemctl restart dhcpd        ##重启dhcpd服务
[root@cenos2 tftpboot]# systemctl restart vsftpd        ##重启vsftpd服务
[root@cenos2 tftpboot]# systemctl restart tftp        ##重启tftp服务
[root@cenos2 tftpboot]# systemctl stop firewalld        ##关闭防火墙
[root@cenos2 tftpboot]# setenforce 0            ##关闭selinux

9.新建虚拟机将网络和服务器改为同一模式,开机验证

PXE常见故障:

故障一:如果客户机开机可以获取到ip,但是提示pxe-e11:arp-timeout
解决办法:查看next-server的ip地址是否正确
故障二:如果使用system-config-kickstart工具选择软件包提示由于下载软件包失败
解决办法:将本地yum源的第一项 [*] 改为 [development]
故障三:虚拟机内存不足
解决方法:你懂的

返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码