zoukankan      html  css  js  c++  java
  • 《Linux就该这么学》培训笔记_ch19_使用PXE+Kickstart无人值守安装服务

    《Linux就该这么学》培训笔记_ch19_使用PXE+Kickstart无人值守安装服务

    文章最后会post上书本的笔记照片。

    文章主要内容

    无人值守系统

    面对生产环境中数以百计的服务器需要安装系统,传统的使用光盘来为服务器逐个安装,效率未免太过低下。

    使用PXE + TFTP +FTP + DHCP + Kickstart服务搭建出一个无人值守安装系统,可以自动地为数十台服务器安装系统,避免运维人员手动重复着枯燥乏味的工作,大大提升了系统安装的效率。

    无人值守安装系统的工作流程:

    PXE(Preboot eXecute Environment,预启动执行环境)可以让计算机通过网络来启动操作系统(前提是计算机上安装的网卡支持PXE技术),主要用于在无人值守安装系统中引导客户端主机安装Linux操作系统。

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

    由于当前的客户端主机并没有完整的操作系统,无法完成FTP协议的验证,所以需要使用TFTP协议帮助客户端获取引导及驱动文件。vsftpd服务程序用于将完整的系统安装镜像通过网络传输给客户端(只要能将系统安装镜像成功传输给客户端即可,也可以使用httpd来替代vsftpd服务程序)。


    部署相关服务程序

    配置DHCP服务程序

    DHCP服务程序用于为客户端主机分配可用的IP地址,而且是服务器与客户端主机进行文件传输的基础

    yum install -y dhcp
    vim /etc/dhcp/dhcpd.conf allow booting; allow bootp; #允许了BOOTP引导程序协议,让局域网内暂时没有操作系统的主机也能获取静态IP地址 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"; #加载引导驱动文件pxelinux.0(此文件会在接下来的步骤中创建),让客户端主机获取到IP地址后主动获取引导驱动文件,自行进入下一步的安装过程 }
    systemctl restart dhcpd
    systemctl enable dhcpd

    配置TFTP服务程序

    vsftpd是一款功能丰富的文件传输服务程序,允许用户以匿名开放模式、本地用户模式、虚拟用户模式来进行访问认证。但是,当前的客户端主机还没有安装操作系统,无法进行登录认证。

    TFTP作为一种基于UDP协议的简单文件传输协议,不需要进行用户认证即可获取到所需的文件资源。因此可以配置TFTP服务程序,为客户端主机提供引导及驱动文件。当客户端主机有了基本的驱动程序之后,再通过vsftpd服务程序将完整的光盘镜像文件传输过去。

    yum install -y tftp-server
    vim /etc/xinetd.d/tftp                                    #TFTP的运行和关闭是由xinetd网络守护进程服务来管理的
    service tftp
    {
            socket_type             = dgram
            protocol                = udp
            wait                    = yes
            user                    = root
            server                  = /usr/sbin/in.tftpd
            server_args             = -s /var/lib/tftpboot    
            disable                 = no                      #开启TFTP服务程序
            per_source              = 11
            cps                     = 100 2
            flags                   = IPv4
    }
    systemctl restart xinetd                                  #重启xinetd服务程序,并将其加入到开机启动项
    systemctl enable xinetd
    firewall-cmd --permanent --add-port=69/udp                #TFTP服务程序默认使用的是UDP协议,占用的端口号为69,防火墙需要放行
    firewall-cmd --reload 

    配置SYSLinux服务程序

    SYSLinux是一个用于提供引导加载的服务程序。在安装好SYSLinux服务程序软件包后,/usr/share/syslinux目录中会出现很多引导文件

    yum install -y syslinux
    cd /var/lib/tftpboot                                     #进入TFTP服务程序的默认目录
    cp /usr/share/syslinux/pxelinux.0 .                      #把SYSLinux提供的引导文件复制到TFTP服务程序的默认目录中(“.”代表当前所在路径)
    cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} .    #在RHEL 7系统光盘镜像中也有一些我们需要调取的引导文件(光盘镜像已被挂载到/media/cdrom中)
    cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} .
    mkdir pxelinux.cfg                                            #在TFTP服务程序的目录中新建pxelinux.cfg目录
    cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default    #将系统光盘中的开机选项菜单复制到该目录中,并命名为default(default文件就是开机时的选项菜单)
    vim pxelinux.cfg/default                                                                               #默认的开机菜单中有两个选项(安装系统/对安装介质进行检验)
    1 default linux                                                                                        #default参数修改为linux,使得开机时默认执行安装系统选项
    ...
    64 append initrd=initrd.img inst.stage2=ftp://192.168.10.10 ks=ftp://192.168.10.10/pub/ks.cfg quiet    #将默认的光盘镜像安装方式修改成FTP文件传输方式,并指定好光盘镜像的获取网址以及Kickstart应答文件(ks)的获取路径
    ...

    配置VSFtpd服务程序

    在无人值守安装系统的服务中,光盘镜像是通过FTP协议传输的,因此势必要用到vsftpd服务程序(也可以使用httpd服务程序来提供Web网站访问的方式,只要能确保将光盘镜像顺利传输给客户端主机即可)。如果打算使用Web网站服务来提供光盘镜像,一定记得将上面配置文件中的光盘镜像获取网址和Kickstart应答文件获取网址修改一下。

    yum install -y vsftpd
    systemctl restart vsftpd    #重启服务并加入开机启动项
    systemctl enable vsftpd
    cp -r /media/cdrom/* /var/ftp    #把目录中的光盘镜像文件全部复制到vsftpd服务程序的工作目录/var/ftp中
    firewall-cmd --permanent --add-service=ftp    #在firewall防火墙中放行ftp协议
    firewall-cmd --reload 
    setsebool -P ftpd_connect_all_unreserved=on    #在SELinux中放行FTP传输

    创建KickStart应答文件

    无人值守安装系统服务还需要让客户端主机能够一边获取光盘镜像,还能够一边自动填写好安装过程中出现的选项。彻底解放人的干预,彻底实现无人值守自动安装系统,而不是单纯地传输系统光盘镜像。

    Kickstart并不是一个服务程序,而是一个应答文件。Kickstart应答文件中包含了系统安装过程中需要使用的选项和参数信息,系统可以自动调取这个应答文件的内容,从而彻底实现了无人值守安装系统。

    在root管理员的家目录中有一个名为anaconda-ks.cfg的文件,它就是应答文件

    cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg    #将anaconda-ks.cfg文件复制到vsftpd服务程序的工作目录中(在开机选项菜单的配置文件中已经定义了该文件的获取路径,也就是vsftpd服务程序数据目录中的pub子目录中)
    chmod +r /var/ftp/pub/ks.cfg                #复制过来的文件赋予所有人都可读的权限
    vim /var/ftp/pub/ks.cfg                     #编辑Kickstart应答文件
    ...
    6 url --url=ftp://192.168.10.10             #把光盘镜像安装方式修改成FTP协议,填写好FTP服务器的IP地址
    ...
    21 timezone Asia/Shanghai --isUtc           #时区修改成上海(Asia/Shanghai)
    ...
    29 clearpart --all --initlabel              #磁盘选项设置为清空所有磁盘内容并初始化磁盘
    ...

    至此,PXE + TFTP +FTP + DHCP + Kickstart服务组成的无人值守安装系统搭建完成。


    自动部署客户机

    对于虚拟机,没有特别的要求,只要选择稍后安装操作系统,网卡选择与服务端一致的仅主机模式,启动主机即可开始传输光盘镜像文件并进行自动安装。

    在生产环境中,大家只需要将配置妥当的服务器上架,接通服务器和客户端主机之间的网线,然后启动客户端主机即可。


    书本笔记

  • 相关阅读:
    Java基础复习(1)
    mybatis中Oracle分页语句的写法
    Spring Security 入门原理及实战
    Java中的基本类型和包装类型区别
    Apache Shiro简单介绍
    linux常用命令介绍
    Spring Cloud的简单介绍
    服务端跳转和客户端跳转
    使用ajax向后台发送请求跳转页面无效的原因
    js css html加载顺序
  • 原文地址:https://www.cnblogs.com/kaminwu/p/11019740.html
Copyright © 2011-2022 走看看