使用PXE+Kickstart无人值守批量安装Linux系统

原创 彭淇  2018-08-26 18:58:30  阅读 989 次 评论 2 条

我之前都是使用光盘镜像来安装Linux系统的方法,坦白讲,该方法适用于只安装少量Linux系统的情况。如果生产环境中有数百台服务器都需要安装系统,这种方式就不合时宜了。这时,我们就需要使用PXE + TFTP +FTP + DHCP + Kickstart服务搭建出一个无人值守安装系统。这种无人值守安装系统可以自动地为数十台服务器安装系统,大大提升了系统安装的效率。

无无人值守安装系统的工作流程如图所示

1.png

一、配置DHCP服务程序

当挂载好光盘镜像并把Yum仓库文件配置妥当后,就可以安装DHCP服务程序软件包了。

[root@pengqi ~]# yum -y install dhcp

我们在这里使用的配置文件有两个主要区别:允许了BOOTP引导程序协议,旨在让局域网内暂时没有操作系统的主机也能获取静态IP地址;在配置文件的最下面加载了引导驱动文件pxelinux.0(这个文件会在下面的步骤中创建),其目的是让客户端主机获取到IP地址后主动获取引导驱动文件,自行进入下一步的安装过程。

[root@pengqi ~]# vim /etc/dhcp/dhcpd.conf
allow booting;
allow bootp;
ddns-update-style interim;
ignore client-updates;
subnet 192.168.10.0 netmask 255.255.255.0 {
        option subnet-mask      255.255.255.0;
        option domain-name-servers  192.168.10.10;
        range dynamic-bootp 192.168.10.100 192.168.10.200;
        default-lease-time      21600;
        max-lease-time          43200;
        next-server             192.168.10.10;
        filename                "pxelinux.0";

在确认DHCP服务程序的参数都填写正确后,重新启动该服务程序。

[root@pengqi ~]# systemctl restart dhcpd

二、配置TFTP服务

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

[root@pengqi ~]# yum -y install tftp-server

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

[root@pengqi ~.d]# vim /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
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
[root@pengqi xinetd.d]# systemctl restart xinetd
[root@pengqi ~]# firewall-cmd --permanent --add-port=69/udp

三、配置SYSLinux服务

[root@pengqi ~]# yum -y install syslinux
[root@pengqi ~]# cd /var/lib/tftpboot
[root@pengqi tftpboot]# cp /usr/share/syslinux/pxelinux.0 .
[root@pengqi tftpboot]# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} .
[root@pengqi tftpboot]# cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} .
[root@pengqi tftpboot]# mkdir pxelinux.cfg
[root@pengqi tftpboot]# cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/ 
 default

现在我们编辑这个default文件,把第1行的default参数修改为linux,这样系统在开机时就会默认执行那个名称为linux的选项了。对应的linux选项大约在64行,我们将默认的光盘镜像安装方式修改成FTP文件传输方式,并指定好光盘镜像的获取网址以及Kickstart应答文件的获取路径:

[root@lpengqi tftpboot]# vim pxelinux.cfg/default
 1 default linux
64 append initrd=initrd.img inst.stage2=ftp://192.168.10.10 ks=ftp://192.168.
 10.10/pub/ks.cfg quiet

四、配置vsftpd服务

在这套无人值守安装系统的服务中,光盘镜像是通过FTP协议传输的,因此势必要用到vsftpd服务程序。

[root@pengqi ~]# yum -y install vsftpd

在确认系统光盘镜像已经正常挂载到/media/cdrom目录后,把目录中的光盘镜像文件全部复制到vsftpd服务程序的工作目录中。

[root@pengqi ~]# cp -r /media/cdrom/* /var/ftp

五、创建KickStart应答文件

其实在root管理员的家目录中有一个名为anaconda-ks.cfg的文件,它就是应答文件。下面将这个文件复制到vsftpd服务程序的工作目录中(在开机选项菜单的配置文件中已经定义了该文件的获取路径,也就是vsftpd服务程序数据目录中的pub子目录中)。使用chmod命令设置该文件的权限,确保所有人都有可读的权限,以保证客户端主机可以顺利获取到应答文件及里面的内容:

[root@pengqi ~]# cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
[root@pengqi ~]# chmod +r /var/ftp/pub/ks.cfg

首先把第6行的光盘镜像安装方式修改成FTP协议,仔细填写好FTP服务器的IP地址,并用本地浏览器尝试打开下检查有没有报错。然后把第21行的时区修改成上海(Asia/Shanghai)。

[root@pengqi ~]# vim /var/ftp/pub/ks.cfg 
 1 #version=RHEL7
 2 # System authorization information
 3 auth --enableshadow --passalgo=sha512
 4 
 5 # Use CDROM installation media
 6 url --url=ftp://192.168.10.10
 19 rootpw --iscrypted $6$pDjJf42g8C6pL069$iI.PX/yFaqpo0ENw2pa7MomkjLyoae2zjMz2
 UZJ7b H3UO4oWtR1.Wk/hxZ3XIGmzGJPcs/MgpYssoi8hPCt8b/
 20 # System timezone
 21 timezone Asia/Shanghai --isUtc

六、最后部署客户机测试

在按照上文讲解的方法成功部署各个相关的服务程序后,就可以使用PXE + Kickstart无人值守安装系统了。在采用下面的步骤建立虚拟主机时,一定要把客户端的网卡模式设定成与服务端一致的“仅主机模式”,否则两台设备无法进行通信,也就更别提自动安装系统了。其余硬件配置选项并没有强制性要求,大家可参考这里的配置选项来设定。

使用PXE+Kickstart无人值守批量安装Linux系统第2张-飞翔勿扰

使用PXE+Kickstart无人值守批量安装Linux系统第3张-飞翔勿扰

使用PXE+Kickstart无人值守批量安装Linux系统第4张-飞翔勿扰


    现在,我们就同时准备好了PXE + Kickstart无人值守安装系统与虚拟主机。接下来就会按照图那样,开始传输光盘镜像文件并进行自动安装了—期间完全无须人工干预,直到安装完毕时才需要人员进行简单的初始化工作。

TIM截图20180826192831.png


本文地址:http://www.pengqi.club/blog/274.html
版权声明:本文为原创文章,版权归 彭淇 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

评论列表

  1. 头条
    头条 【农民】  @回复

    文章不错非常喜欢