zoukankan      html  css  js  c++  java
  • 第19章 使用PXE+Kickstart部署无人值守安装

    章节概述:

    本章节将教会您通过PXE+DHCP+TFTP+VSftpd+Kickstart服务程序搭建出无人值守安装系统,从而批量部署客户机系统。

    这种系统能够实现自动化运维、避免了重复性劳动,帮助提升工作效率,对于运维人员真的是太有帮助了。

    19.1 无人值守系统

    坦白来讲,使用光盘或U盘这种传统物理方式安装系统效率真的很低,尤其当需要批量部署系统时更是明显。

    一般的机房设备都会在数百台以上,即便购买了数百张系统光盘,那您也必需对每台设备初始化安装向导,免不了会有选错的参数,更何况如此多的设备没有几天肯定装不完吧。

    其实我们可以用PXE+DHCP+TFTP+VSftpd+Kickstart部署出无人值守安装系统,这种系统能够实现自动化运维、避免了重复性劳动,帮助提升工作效率,对于DHCP已经是咱们学习过的了,所以这里就不再多说,小伙伴们如果忘记了可以翻去前面章节复习下。

    无人值守安装流程

    PXE(Preboot execute environment)是一种能够让计算机通过网络启动的引导方式,只要网卡支持PXE协议即可使用。

    Kickstart是一种无人值守的安装方式,工作原理就是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg文件,当安装过程中出现需要填写参数时则自动匹配Kickstart生成的文件,所以只要Kickstart文件包含了安装过程中所有需要人工填写的参数,那么运维人员就完全不需要干预,等待安装完毕即可。

    简单文件传输协议TFTP(Trivial File Transfer Protocol)是一种基于UDP协议的传输协议,其与前面学习的vsftpd服务程序的FTP协议有很大不同,TFTP协议不具备FTP的许多功能(例如列出目录,密码认证等等),但TFTP协议配置非常简单,而且资源消耗更低,非常适合传输不敏感的文件。
    出现问题?大胆提问!

    因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~

    Linux技术交流请加A群:560843(),B群:340829(推荐),C群:463590(推荐),点此查看全国群

    *本群特色:通过口令验证确保每一个群员都是《Linux就该这么学》的读者,答疑更有针对性,不定期免费领取定制礼品。

    19.2 部署相关服务程序

    咱们需要依次部署DHCPTFTPSYSLinux、VSFtpdKickstart服务,在这之前请先准备两台虚拟机并配置好网卡参数:

    编辑
    主机名称 操作系统 IP地址
    无人值守系统 红帽RHEL7操作系统 192.168.10.10
    客户端 未安装操作系统 -

    并确保您的虚拟机软件自带DHCP服务功能已经关闭:
    选择虚拟机导航条上的网络编辑器
    不使用虚拟机的DHCP功能

    19.2.1 配置DHCP服务程序

    安装dhcpd服务程序:

    [root@linuxprobe ~]# yum install dhcp
    Loaded plugins: langpacks, product-id, subscription-manager
    ………………省略部分安装过程………………
    Installing:
     dhcp          x86_64          12:4.2.5-27.el7             rhel7          506 k
    ………………省略部分安装过程………………
    Complete!
    

    配置dhcpd服务程序(将下面的内容复制进去即可,具体参数含义请回顾dhcpd服务章节):

    [root@linuxprobe ~]# 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";
    }
    

    重启dhcpd服务并添加到开机启动项:

    [root@linuxprobe ~]# systemctl restart dhcpd
    [root@linuxprobe ~]# systemctl enable dhcpd
    ln -s '/usr/lib/systemd/system/dhcpd.service' '/etc/systemd/system/multi-user.target.wants/dhcpd.service'

    添加防火墙对dhcpd服务允许的规则:

    [root@linuxprobe ~]# firewall-cmd --permanent --add-service=dhcp
    success
    [root@linuxprobe ~]# firewall-cmd --reload 
    success
    
    19.2.2 配置TFTP服务程序

    安装tftp服务程序:

    [root@linuxprobe ~]# yum install tftp-server
    Loaded plugins: langpacks, product-id, subscription-manager
    ………………省略部分安装过程………………
    Installing:
     tftp-server       x86_64              5.2-11.el7                rhel7            44 k
    Installing for dependencies:
     xinetd            x86_64              2:2.3.15-12.el7           rhel7            128 k
    ………………省略部分安装过程………………
    Complete!
    

    分析vsftpd服务程序时发现,FTP服务器为了随时能够回应客户端的请求必需运行一个长期驻扎在系统中的守护进程,但这样也意味着会有一定的资源浪费,网络守护进程服务程序xinetd便是为了解决资源浪费问题而设计的,因为xinetd服务程序会同时监听多个系统端口,依据客户端请求的端口再转发给指定的服务程序,而tftp便是由xinetd服务程序来管理的。
    编辑xinetd配置文件,启动TFTP服务程序:

    [root@linuxprobe ~.d]# vim /etc/xinetd.d/tftp
    //将disable的值修改为no。
    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
    

    重启xinetd服务并添加到开机启动项中:

    [root@linuxprobe xinetd.d]# systemctl restart xinetd
    [root@linuxprobe xinetd.d]# systemctl enable xinetd
    

    添加防火墙对tftp服务允许的规则:

    [root@linuxprobe ~]# firewall-cmd --permanent --add-port=69/udp
    success
    [root@linuxprobe ~]# firewall-cmd --reload 
    success
    
    19.2.3 配置SYSLinux服务程序

    syslinux是用于提供引导加载的服务程序,目的是简化安装Linux系统的时间,安装syslinux服务程序:

    [root@linuxprobe ~]# yum install syslinux
    Loaded plugins: langpacks, product-id, subscription-manager
    ………………省略部分安装过程………………
    Installing:
     syslinux             x86_64             4.05-8.el7               rhel7             1.0 M
    ………………省略部分安装过程………………
    Complete!
    

    将引导相关文件复制到tftp目录以供客户端下载(请确保光盘镜像已挂载到/media/cdrom):

    [root@linuxprobe ~]# cd /var/lib/tftpboot
    [root@linuxprobe tftpboot]# cp /usr/share/syslinux/pxelinux.0 .
    [root@linuxprobe tftpboot]# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} .
    [root@linuxprobe tftpboot]# cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} .
    

    将引导模板文件复制tftp目录:

    [root@linuxprobe tftpboot]# mkdir pxelinux.cfg
    [root@linuxprobe tftpboot]# cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default
    

    编辑引导模板文件:

    [root@linuxprobe 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
    //将第70行修改为:
    append initrd=initrd.img inst.stage2=ftp://192.168.10.10 rd.live.check ks=ftp://192.168.10.10/pub/ks.cfg quiet
    19.2.4 配置VSFtpd服务程序

    安装vsftpd服务程序:

    [root@linuxprobe ~]# yum install vsftpd
    Loaded plugins: langpacks, product-id, subscription-manager
    ………………省略部分安装过程………………
    Installing:
     vsftpd                 x86_64                 3.0.2-9.el7                  rhel7                 166 k
    ………………省略部分安装过程………………
    Complete!
    

    重启vsftpd服务程序并添加到开机启动项:

    [root@linuxprobe ~]# systemctl restart vsftpd
    [root@linuxprobe ~]# systemctl enable vsftpd
    ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service'

    添加防火墙对vsftpd服务允许的规则:

    [root@linuxprobe ~]# firewall-cmd --permanent --add-service=ftp
    success
    [root@linuxprobe ~]# firewall-cmd --reload 
    success
    

    将光盘镜像文件的内容复制到FTP目录中(请先确保您的光盘已经挂载到/media/cdrom目录):

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

    设置SELinux对于FTP协议的允许策略:

    [root@linuxprobe ~]# setsebool -P ftpd_connect_all_unreserved=on
    
    19.2.4 创建KickStart应答文件

    复制一份应答文件模板并给于权限:

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

    编辑模板文件:

    [root@linuxprobe ~]# vim /var/ftp/pub/ks.cfg 
    //将第6行的cdrom修改为:
     url --url=ftp://192.168.10.10
    //将第21行的时区修改为:
     timezone Asia/Shanghai --isUtc
    //将第28行修改为:
     clearpart --all --initlabel
    

    出现问题?大胆提问!

    因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~

    Linux技术交流请加A群:560843(),B群:340829(推荐),C群:463590(推荐),点此查看全国群

    *本群特色:通过口令验证确保每一个群员都是《Linux就该这么学》的读者,答疑更有针对性,不定期免费领取定制礼品。

    19.3 自动部署客户机

    当我们部署好了无人值守系统后,就可以新增一台虚拟机来验证啦:

    请您按照下面的幻灯片逐步操作,可点击图片两侧箭头或下方小圆点“○”切换步骤。

    • 第1步:运行新建虚拟机向导。

    当开启客户端虚拟机电源后,会自动化的进行部署系统:

    自动化安装加载中

    耐心的等待安装中:

    安装过程中

    大约20分钟后系统已经顺利的安装完毕:

    安装完毕

  • 相关阅读:
    图片展示和上传需要注意的问题
    大数据技能学习
    C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码)
    领导力
    .NetCore 三种生命周期注入方式
    Redis常见面试题
    .NET Core开发日志——Middleware
    编程的灵魂
    递推算法
    分治算法
  • 原文地址:https://www.cnblogs.com/linux130/p/5786165.html
Copyright © 2011-2022 走看看