PXE高效批量网络装机和无人值守Kickstart

文章目录

  • 部署PXE远程安装服务
  • PXE远程安装部署基本过程
  • Kickstart无人值守安装
  • PXE网络装机和无人值守配置示例
    • PXE网络装机
      • 服务器配置
      • 客户端配置及测试
    • 无人值守服务配置
      • 服务器配置
      • 客户机配置及测试

部署PXE远程安装服务

  PXE是由Intel公式开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加重安装文件或整个操作系统。若要搭建PXE网络体系,必须满足以下几个前提条件。

  • 客户机的网卡支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。
  • 网络中有一台DHCP服务器以便为客户机自动分配地址、指定引导文件位置。
  • 服务器通过TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。
      其中,第一个为硬件要求,目前绝大多数服务器和大多数PC都能够提供此支持,只需要在BIOS设置中允许从Network或LAN启动即可。

PXE远程安装部署基本过程

PXE的部署包括:DHCP服务部署、FTP服务部署、TFTP服务部署

  • DHCP服务部署
    PXE为网络部署,需要DHCP服务,来为客户机分配IP
  • FTP服务部署-CentOS安装源
    用来发布centos7镜像源
  • TFTP服务器部署
    用来部署引导文件

Kickstart无人值守安装

  通过PXE技术远程安装Centos系统的方法,安装介质不在受限于光盘、移动硬盘登设备,大大提高了系统安装的灵活性。然而,安装期间仍需要手动选择语言、键盘类型、指定安装源等一系列交互操作,当需要批量安装时非常不方便。
  通过使用Kickstart工具配置安装应答文件,自动完成安装过程中的各种设置,从而无需手动干预,提高网络装机的效率,同时也可以在应答文件中通过添加%post脚本,完成安装后的各种配置操作。
  准备安装应答文件:
  在我们系统中,有自动创建的安装应答文件,路径在我们的/root/anaconda-ks.cfg下,anaconda-ks.cfg就是安装应答文件,我们可以修改以使用。在安装systemctl-config-kickstart工具之后,即可通过图形化界面来创建配置安装应答文件,再结合系统中自带的应答文件,完善我们自己建的应答文件,将其复制到FTP服务/var/ftp/Centos7目录下,并将路径添加到default文件中。

PXE网络装机和无人值守配置示例

两台centos7,服务器使用双网卡(仅主机vmnet1和NATvmnet8),客户端vmnet1裸机

PXE网络装机

服务器配置

网卡选择
PXE高效批量网络装机和无人值守Kickstart_第1张图片
网卡配置
仅主机网卡

[root@localhost~]#cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens36
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens36

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static     
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens36                            ##
UUID=cc8fe223-9f79-414d-a8a3-501fe6784038      ##删除
DEVICE=ens36                              ##
ONBOOT=yes
IPADDR=192.168.100.100
NETMASK=255.255.255.0
[root@localhost ~]# systemctl restart network

PXE配置
DHCP配置
安装DHCP
修改DHCP的配置文件/etc/dhcp/dhcpd.conf,添加正常的DHCP配置项,并添加选项使之指向TFTP服务器,并指向引导文件。

[root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? yes
[root@localhost ~]# vi /etc/dhcp/dhcpd.conf 

# dhcpd.conf
#
...
# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.

subnet 192.168.100.0 netmask 255.255.255.0 {
      range 192.168.100.200 192.168.100.220;
      option subnet-mask 255.255.255.0;
      option routers 192.168.100.100;
      option domain-name "dhcp1";
      option domain-name-servers 192.168.100.100;
      next-server 192.168.100.100;
      filename "pxelinux.0";
}

# This is a very basic subnet declaration.
...
[root@localhost ~]# systemctl start dhcpd

FTP–centos7安装源准备
安装vsftpd*相关软件
将光盘挂载到/var/ftp/Centos7,该目录需要自己创建。

[root@localhost ~]# yum -y install vsftp*
[root@localhost ~]# mkdir /var/ftp/centos7
[root@localhost ~]# vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue Jun 16 17:11:52 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=a843b730-1f38-4357-af35-41d22b2f7a67 /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/cdrom /var/ftp/centos7 iso9660 defaults 0 0
[root@localhost ~]# mount -a
mount: /dev/sr0 写保护,将以只读方式挂载

TFTP服务配置
安装并启动TFTP服务,TFTP服务由tftp-server软件包提供,由xinetd超级服务进行管理,配置文件位于/etc/xinetd.d/tftp,修改配置文件disable=yes改成no即可,启动服务systemctl start tftp;站点目录/var/lib/tftpboot,用来存放TFTP需要的四个文件
同时需要四个文件:pxelinux.0、default、vmlinuz和initrd.img
pxelinux.0:就是配置DHCP时指向的TFTP服务器中的引导文件,是由syslinux软件包提供,安装syslinux软件包,文件位于/usr/share/syslinux/pxelinux.0路径下,复制到站点目录/var/lib/tftpboot下,用来指引接下来需要加载的配置文件
default:由pxelinux.0文件指引的需要加载配置文件,文件需要自己创建,内容需要填写,文件创建路径为/var/lib/tftpboot/pxelinux.cfg/default,文件内容为添加加载模式,加载系统内核、初始化镜像和指引系统镜像FTP服务的位置,及无人值守配置文件位置
vmlinuz和initrd.img:为系统内核、初始化镜像文件,在系统光盘中就有,我们将其复制到站点目录/var/lib/tftpboot/目录下即可

[root@localhost ~]# yum -y install tftp-server
[root@localhost ~]# vi /etc/xinetd.d/tftp 

# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
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 ~]# yum -y install syslinux
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@localhost ~]# cp /var/ftp/centos7/images/pxeboot/vmlinuz /var/lib/tftpboot/
[root@localhost ~]# cp /var/ftp/centos7/images/pxeboot/initrd.img /var/lib/tftpboot/
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# touch /var/lib/tftpboot/pxelinux.cfg/default
[root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 1
label auto
    kernel vmlinuz
    append initrd=initrd.img method=ftp://192.168.100.100/centos7             
label linux text
    kernel vmlinuz
    append text initrd=initrd.img method=ftp://192.168.100.100/centos7
label linux rescue
    kernel vmlinuz
    append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7
[root@localhost ~]# systemctl start tftp
[root@localhost ~]# systemctl start vsftpd

防火墙配置

[root@localhost ~]# iptables -F
[root@localhost ~]# setenforce 0
[root@localhost ~]# 

客户端配置及测试

打开一台绑定vmnet1网卡的centos7
在下面读条的界面按esc
PXE高效批量网络装机和无人值守Kickstart_第2张图片
选择Network boot from Intel E1000,回车
PXE高效批量网络装机和无人值守Kickstart_第3张图片
开始装系统,在boot时需要我们敲回车
PXE高效批量网络装机和无人值守Kickstart_第4张图片
可以到这个界面,如果不配置无人值守,则需要手动操作了
PXE高效批量网络装机和无人值守Kickstart_第5张图片

无人值守服务配置

服务器配置

接着刚刚的实验

[root@localhost ~]# yum -y install system-config-kickstart   ##安装完这个后,开始图形化操作

PXE高效批量网络装机和无人值守Kickstart_第6张图片
PXE高效批量网络装机和无人值守Kickstart_第7张图片
PXE高效批量网络装机和无人值守Kickstart_第8张图片
PXE高效批量网络装机和无人值守Kickstart_第9张图片
PXE高效批量网络装机和无人值守Kickstart_第10张图片

PXE高效批量网络装机和无人值守Kickstart_第11张图片
PXE高效批量网络装机和无人值守Kickstart_第12张图片

PXE高效批量网络装机和无人值守Kickstart_第13张图片
PXE高效批量网络装机和无人值守Kickstart_第14张图片
PXE高效批量网络装机和无人值守Kickstart_第15张图片
PXE高效批量网络装机和无人值守Kickstart_第16张图片

保存到/var/ftp/
PXE高效批量网络装机和无人值守Kickstart_第17张图片
PXE高效批量网络装机和无人值守Kickstart_第18张图片

[root@localhost ~]# vi anaconda-ks.cfg 
复制下面这一段到ks.cfg中
%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony
kexec-tools

%end
[root@localhost ~]# vi /var/ftp/ks.cfg 
在末尾粘贴刚刚复制的那一段

修改default文件

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

default auto
prompt 1
label auto
    kernel vmlinuz
    append initrd=initrd.img method=ftp://192.168.100.100/centos7 ks=ftp://192.168.100.100/ks.cfg      ##加上ks这一段
label linux text
    kernel vmlinuz
    append text initrd=initrd.img method=ftp://192.168.100.100/centos7
label linux rescue
    kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7
[root@localhost ~]#

客户机配置及测试

像刚才那样去测试
PXE高效批量网络装机和无人值守Kickstart_第19张图片

你可能感兴趣的:(网络,linux,centos)