云计算运维必会的PXE批量装机!

时间:2020-9-16 作者:admin

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

PXE是一种引导协议,它通过网络来启动系统安装过程。

一、环境准备

在Centos7 操作系统上实现PXE的自动化部署OS,所依赖的服务有:dhcp, tftp, fileserver(http,ftp,nfs),依赖的安装源:kickstart文件,可引导内核-vimlinuz,initrd.img文件。

准备两台虚拟机,一台做PXE服务器,一台不需要安装系统,用于后续PXE客户端装机
准备一台初始化完成虚拟机

-PXE服务器的配置

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

在这里插入图片描述
在这里插入图片描述

  • 修改配置文件
[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 进行配置

在这里插入图片描述

在这里插入图片描述
添加分区/分配的容量要足够大,否则无法安装
入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
保存到/var/ftp目录下
在这里插入图片描述

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

复制红框内的内容到/var/ftp/ks.cfg中
在这里插入图片描述
以上就配置完成了,

客户机

网卡类型为VMnet1
  新建一台虚拟机启动,选择网络启动,开始PXE远程安装,无需任何操作,出现如下界面,可以看到DHCP服务动态分配到了192.168.10.150的地址,以及正在加载一些引导程序。最终加载完成到安装界面。
在这里插入图片描述
如果觉得有用的话,欢迎大家点赞收藏呀。

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。