云计算运维必会的PXE批量装机!(PXE远程安装与kickstart无人值守安装)

目录

    • 概述:
    • 一:部署PXE远程安装服务
    • 1.1:PXE批量部署的优点
    • 1.2关于PXE网络
    • 1.21:PXE,(Pre-boot eXcution Environment)
    • 1.22:服务端
    • 1.23:客户端
    • 1.3:PXE的工作过程
    • 二:配置PXE装机服务器
    • 2.1:基本部署过程
    • 2.2:TFTP服务及引导文件
    • 三:PXE服务器的配置
    • 3.1:服务器
    • 3.2:客户机

概述:

  对于单台服务器上的OS安装,我们可以手动进行,若是一个集群服务中的多个节点超过50台服务器的OS安装,手动安装显然是不可行的,因此作为系统运维工程师自动化运维是我们必不可缺的技能。

在Centos7 操作系统上实现PXE的自动化部署OS,所依赖的服务有:dhcp, tftp, fileserver(http,ftp,nfs),依赖的安装源:kickstart文件,可引导内核-vimlinuz,initrd.img文件。概念图如下。
云计算运维必会的PXE批量装机!(PXE远程安装与kickstart无人值守安装)_第1张图片

准备两台虚拟机,一台做PXE服务器,一台不需要安装系统,用于后续PXE客户端装机
准备一台初始化完成虚拟机,之前文章有详细介绍。

一:部署PXE远程安装服务

1.1:PXE批量部署的优点

  • 规模化:同时装配多台服务器
  • 自动化:安装系统、配置各种服务
  • 远程实现:不需要光盘、U盘等安装介质

1.2关于PXE网络

1.21:PXE,(Pre-boot eXcution Environment)

  • 预启动执行环境,在操作系统之前运行
  • 可用于远程安装,构建无盘工作站

1.22:服务端

  • 运行DHCP服务,用来分配地址,定位引导程序

  • 引导程序:微代码,存放在TFTP服务器中

  • 运行TFTP服务器,提供引导程序下载

  • TFTP服务器时UDP协议,端口号69

  • 镜像文件存放在:vsftpd,TCP协议,端口号20,21

1.23:客户端

  • 网卡支持PXE协议
  • 主板支持网络启动
  • 获得IP后第一件事是获取引导程序,根据引导的指向安装系统

1.3:PXE的工作过程

  • PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP

  • DHCP 服务器返回分配给客户机的IP 以及PXE文件的放置位置(该文件一般是放在一台TFTP服务器上)

  • PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件

  • PXE Client 取得pxelinux.0 文件后之执行该文件

  • 根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统

  • 进入安装画面, 此时可以通过选择HTTP、FTP、NFS 方式之一进行安装

二:配置PXE装机服务器

2.1:基本部署过程

  • 准备Centos 7 安装源
  • 配置DHCP服务,用来分配地址、指出引导程序位置
  • 配置TFTP服务,用来提供内核、引导程序
  • 配置启动菜单

2.2:TFTP服务及引导文件

  • 安装tftp-server软件包,启用tftp服务
  • 准备内核文件vmlinuz
  • 准备初始化镜像initrd.img
  • 准备引导程序文件pxelinux.0 (引导程序文件pxelinux.0依赖于syslinux程序,需要先安装syslinux程序)
  • 还有一个是tftp的默认配置文件需要修改 /etc/xinetd.d/tftp

三:PXE服务器的配置

3.1:服务器

需要两张网卡,一张做桥接模式,一张做VMnet1
服务器地址为192.168.158.10

云计算运维必会的PXE批量装机!(PXE远程安装与kickstart无人值守安装)_第2张图片
云计算运维必会的PXE批量装机!(PXE远程安装与kickstart无人值守安装)_第3张图片

  • 修改配置文件
[root@server1 ~] yum -y install tftp
[root@server1 ~]vi /etc/xinetd.d/tftp    #进入配置文件修改内容
{
     
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot -c    #-s 指定存储路径   -c 允许上传
        disable                 = no    #开启tftp
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
[root@server1 ~] yum -y install dhcp vsftpd
[root@server1 ~] vi /etc/dhcp/dcpd.conf
ddns-update-style none;
next-server 192.168.158.10;  #指定tftp服务器地址
filename"/pxelinux.0";  #引导文件tftp上的位置
subnet 192.168.1.0 netmask 255.255.255.0 {
     
  range 192.168.158.100 192.168.158.200;  #通过PXE装机的主机可以动态获取地址
  option routers 192.168.158.10;  #服务器地址
  option domain-name-servers 8.8.8.8, 114.114.114.114;
}
  • 使ftp客户端可以访问光盘装机
[root@client1 ~] mount /dev/cdrom /var/ftp/pub/
  • 安装引导加载程序
[root@client1 ~] yum -y install syslinux

复制网络启动所需要文件到服务器的根目录下

[root@server1 ~] cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@server1 ~] mkdir /var/lib/tftpboot/pxelinux.cfg/
[root@server1 ~] cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@server1 ~] cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/
[root@server1 ~] cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/
[root@server1 ~] cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot/
  • 编辑安装的配置文件
[root@server1 ~] vi /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 1
label auto
     kernel vmlinuz
     append initrd=initrd.img method=ftp://192.168.158.10/pub
     ks=ftp://192.168.158.10/ks.cfg

label linux text
     kernel vmlinuz
     append text initrd=initrd.img method=ftp://192.168.158.10/pub

label linux rescue
     kernel vmlinuz
     append rescue initrd=initrd.img method=ftp://192.168.158.10/pub
  • 启动所有服务,并关闭防火墙、核心防护
[root@server1 ~] systemctl start dhcpd
[root@server1 ~] systemctl start vsftp
[root@server1 ~] systemctl stop firewalld
[root@server1 ~] setenforce 0
  • 安装应答文件kickstart,可以图形化界面想到来配置安装应答文件
[root@server1 ~] yum -y install system-config-kickstart
  • 图形化界面打开kickstart 进行配置

云计算运维必会的PXE批量装机!(PXE远程安装与kickstart无人值守安装)_第4张图片

云计算运维必会的PXE批量装机!(PXE远程安装与kickstart无人值守安装)_第5张图片

云计算运维必会的PXE批量装机!(PXE远程安装与kickstart无人值守安装)_第6张图片
添加分区/分配的容量要足够大,否则无法安装
云计算运维必会的PXE批量装机!(PXE远程安装与kickstart无人值守安装)_第7张图片
云计算运维必会的PXE批量装机!(PXE远程安装与kickstart无人值守安装)_第8张图片

云计算运维必会的PXE批量装机!(PXE远程安装与kickstart无人值守安装)_第9张图片
云计算运维必会的PXE批量装机!(PXE远程安装与kickstart无人值守安装)_第10张图片
保存到/var/ftp目录下
云计算运维必会的PXE批量装机!(PXE远程安装与kickstart无人值守安装)_第11张图片

[root@server1 ~] vi anaconda-ks.cfg 

复制红框内的内容到/var/ftp/ks.cfg中
云计算运维必会的PXE批量装机!(PXE远程安装与kickstart无人值守安装)_第12张图片
以上就配置完成了,

3.2:客户机

网卡类型为VMnet1
  新建一台虚拟机启动,选择网络启动,开始PXE远程安装,无需任何操作,出现如下界面,可以看到DHCP服务动态分配到了192.168.158.101的地址,以及正在加载一些引导程序。最终加载完成到安装界面。

云计算运维必会的PXE批量装机!(PXE远程安装与kickstart无人值守安装)_第13张图片
如果觉得有用的话,欢迎大家点赞收藏呀。

你可能感兴趣的:(实验,Linux,云计算,linux,centos,运维,云计算,程序人生)