使用 PXE+Kickstart 无人值守安装服务

我是研究僧i 提交于 2019-12-03 17:43:53

➢ 无人值守安装系统;
➢ 部署相关服务程序;
➢ 自动部署客户端主机。
无人值守安装服务的PXE+Kickstart 服务程序需要安装部署的服务:
PXE+TFTP+HTTP+DHCP+Kickstart 服务程序从而搭建出一套可批量安装 Linux 系统的无人值守安装系统,运维新手就可以避免枯燥乏味的重复性工作,大大提供系统安装的效率。
1,无人值守安装系统
无人值守安装系统的工作流程
PXE(Preboot eXecute Environment,预启动执行环境)是由 Intel 公司开发的技术,可以让计算机通过网络来启动操作系统(前提是计算机上安装的网卡支持 PXE 技术),主要用于在无人值守安装系统中引导客户端主机安装 Linux 操作系统。Kickstart 是一种无人值守的安装方式,其工作原理是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg 文件,当安装过程中需要填写参数时则自动匹配 Kickstart 生成的文件。所以只要
Kickstart 文件包含了安装过程中需要人工填写的所有参数,那么从理论上来讲完全不需要运维人员的干预,就可以自动完成安装工作。
2.配置DHCP服务程序
1.DHCP 服务程序用于为客户端主机分配可用的 IP 地址,而且这是服务器与客户端主机进行文件传输的基础,因此我们先行配置 DHCP 服务程序。
首先关掉虚拟机的dhcp服务
在这里插入图片描述
2.给服务端安装DHCP服务

关掉防火墙  systemctl stop firewalld

暂时关selinux防护机制 setenforce0


[root@web ~]#yum install dhcp

Loaded plugins: fastestmirror

c7                                                                      | 3.6 kB  00:00:00

Loading mirror speeds from cached hostfile

Resolving Dependencies

--> Running transaction check

---> Package dhcp.x86_64 12:4.2.5-58.el7.centos will be installed

3.进入dhcp服务的配置文件中进行设置

vim/etc/dhcp/dhcpd.conf

allow booting;

allow bootp; #允许了 BOOTP 引导程序协议

ddns-update-styleinterim;

ignoreclient-updates;

subnet 192.168.146.0 netmask 255.255.255.0 {      #设置的网段我的ip是192.168.146.159.所以我的网段是192.168.146.0

option subnet-mask 255.255.255.0; #子网掩码

option domain-name-servers 192.168.146.159; #设置dns服务器还是我的本机

range dynamic-bootp192.168.146.100 192.168.10.200; #IP地址的租用范围(就是给客户机ip地址的范围)

default-lease-time21600; #默认租约时间

max-lease-time43200; #最大租约时间

next-server192.168.146.159;  #tftp服务器地址

filename"pxelinux.0";#tftp服务器根目录下面的文件名

在确认 DHCP 服务程序的参数都填写正确后,重新启动该服务程序,并将其添加到开机启动项中。这样在设备下一次重启之后,在无须人工干预的情况下,自动为客户端主机安装系统。

[root@web ~]#
systemctl start dhcpd

[root@web ~]#
systemctl enable dhcpd

Created symlink
from /etc/systemd/system/multi-user.target.wants/dhcpd.service to
/usr/lib/systemd/system/dhcpd.service.

4.配置tftp服务

vsftpd 是一款功能丰富的文件传输服务程序,允许用户以匿名开放模式、本地用户模式、虚拟用户模式来进行访问认证。但是,当前的客户端主机还没有安装操作系统,该如何进行登录认证呢?而 TFTP 作为一种基于 UDP 协议的简单文件传输协议,不需要进行用户认证即可获取到所需的文件资源。因此接下来配置 TFTP 服务程序,为客户端主机提供引导及驱动文件。当客户端主机有了基本的驱动程序之后,再通过 vsftpd 服务程序将完整的光盘镜像文件传输过去

[root@web ~]#yum install tftp-server

Loaded plugins:fastestmirror

Loading mirror speeds from cached hostfile

Resolving Dependencies

--> Running transaction check

---> Package tftp-server.x86_64 0:5.2-13.el7 will be installed

--> Finished Dependency Resolution

安装xinetd

 [root@web ~]#yum install xinetd
    
    Loaded plugins:fastestmirror
    
    Loading mirrorspeeds from cached hostfile
    
    ResolvingDependencies
    
    --> Running transactioncheck
    

[root@web ~]#
systemctl start xinetd

[root@web ~]#
systemctl enable xinetd

TFTP 是一种非常精简的文件传输服务程序,它的运行和关闭是由xinetd 网络守护进

程服务来管理的。xinetd 服务程序会同时监听系统的多个端口,然后根据用户请求的端口号调取相应的服务程序来响应用户的请求。需要开启 TFTP 服务程序,只需在 xinetd 服务程序的配置文件中把 disable 参数改成 no 就可以了。保存配置文件并退出,然后重启 xinetd服务程序,并将其加入到开机启动项中(在 RHEL 7 系统中,已经默认启用了 xinetd 服务程序,因此在将其添加到开机启动项中的时候没有输出信息属于正常情况)。

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  ####注意 yes改为no

        per_source              = 11

        cps                     = 100 2

        flags                   = IPv4

}
  1. 配置 SYSLinux 服务程序

SYSLinux 是一个用于提供引导加载的服务程序。与其说 SYSLinux 是一个服务程序,不
如说更需要里面的引导文件,在安装好 SYSLinux 服务程序软件后,/usr/share/syslinux 目录中会出现很多引导文件

[root@web ~]#yum install syslinux

Loaded plugins:fastestmirror

c7                                                      | 3.6 kB     00:00

Loading mirror speeds from cached hostfile

Package syslinux-4.05-13.el7.x86_64 already installed and latest version

我们首先需要把 SYSLinux 提供的引导文件复制到 TFTP 服务程序的默认目录中,也就是前文提到的文件 pxelinux.0,这样客户端主机就能够顺利地获取到引导文件了。另外在 RHEL 7系统光盘镜像中也有一些我们需要调取的引导文件。确认光盘镜像已经被挂载到/media/cdrom 目录后,使用复制命令将光盘镜像中自带的一些引导文件也复制到 TFTP 服务程序的默认目录中。

cd /var/lib/tftpbootcd   进入到tftp服务程序的默认目录

cp /usr/share/syslinux/pxelinux.0 .    配置DHCP是的pxelinux.0复制到tftp服务程序的默认目录

cp /mnt/images/pxeboot/{vmlinuz,initrd.img} . 复制光盘镜像我们需要的系统引导文件

cp /mnt/isolinux/{vesamenu.c32,boot.msg} .

mkdir pxelinux.cfg  创建目录

cp/mnt/isolinux/isolinux.cfg pxelinux.cfg/default 计算机自动选择相应的安装选项的配置目录

6.编辑他

[root@webtftpboot]# vi -n pxelinux.cfg.text

     1 default linux

    61 label linux

    62   menu label ^Install CentOS 7

    63   kernel vmlinuz

    64    append initrd=initrd.img ks=http://192.168.146.159/config/ks.cfg

这个配置文件其他计算机怎么获得呢接下来就需要文件传输协议(nfs.ftp.http)都可以我用的是http协议

  1. 安装http服务

[root@webtftpboot]# yum install httpd

        Loaded plugins:fastestmirror
        
        Loading mirror speeds from cached hostfile
        
        Resolving Dependencies
        
         --> Running transaction check
       
         ---> Package httpd.x86_64 0:2.4.6-67.el7.centos will be reinstalled
         --> Finished Dependency Resolution


开启http服务 systemctl   start httpd

开机自启动    systemctl   enable httpd 

验证http是否开启
在这里插入图片描述
需要注意:window自带的edge浏览器打不开 需要ie或者谷歌都可以打开
然后新开一台虚拟机测试是否pxe批量装机正常启动
在这里插入图片描述

这说明已经安装成功,然后是时间问题
需要注意 虚拟机硬盘需要大于20G 内存2G 否则有可能因为内存或者空间不足而报错

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!