zoukankan      html  css  js  c++  java
  • Linux系统下手把手完成无人值守安装服务

    刚入职的运维新手经常会被要求去做一些安装操作系统的工作,如果按照用镜像光盘安装操作系统,效率会相当低下。那么如何提升效率,搭建出一套可以批量安装Linux系统的无人值守的安装系统?

    PXE+TFTP+FTP+DHCP+Kickstart服务可以搭建出一个无人值守安装系统。这种无人值守安装系统可以自动的为数十台服务器安装系统,将运维人员从重复性的工作中解救出来,大大提升了系统安装的效率。

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

    PXE(Preboot eXecute Environment,预启动执行环境)是由 Intel 公司开发的技术,可以让计算机通过网络来启动操作系统(前提是计算机上安装的网卡支持 PXE 技术),主要用于在无人值守安装系统中引导客户端主机安装 Linux 操作系统。Kickstart 是一种无人值守的安装方式,其工作原理是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg 文件,当安装过程中需要填写参数时则自动匹配 Kickstart 生成的文件。所以只要Kickstart 文件包含了安装过程中需要人工填写的所有参数,那么从理论上来讲完全不需要运维人员的干预,就可以自动完成安装工作。

    当然需要使用 TFTP 协议帮助客户端获取引导及驱动文件。vsftpd 服务程序用于将完整的系统安装镜像通过网络传输给客户端。当然,只要能将系统安装镜像成功传输给客户端即可,因此也可以使用 httpd 来替代 vsftpd 服务程序。

    首先,配置DHCP服务程序。DHCP 服务程序用于为客户端主机分配可用的 IP 地址,而且这是服务器与客户端主机进行文件传输的基础,因此我们先行配置 DHCP 服务程序。

    [root@linuxprobe linuxprobe]# yum install dhcp

    [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";

    }

    该操作的目的是为了允许BOOTP引导程序协议,旨在让局域网内暂时没有操作系统的主机也能获取静态 IP地址;在配置文件的最下面加载了引导驱动文件 pxelinux.0 ,其目的是让客户端主机获取到 IP 地址后主动获取引导驱动文件,自行进入下一步的安装过程。具体解释见《Linux就该这么学》。

    第二步,配置TFTP服务程序。

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

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

    [root@linuxprobe ~.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

    }

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

    [root@linuxprobe ~]# yum install syslinux

    [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} .

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

    [root@linuxprobe tftpboot]# mkdir pxelinux.cfg

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

    然后在 TFTP 服务程序的目录中新建 pxelinux.cfg 目录,虽然该目录的名字带有后缀,但依然也是目录,而非文件!将系统光盘中的开机选项菜单复制到该目录中,并命名为 default。这个 default 文件就是开机时的选项菜单,如图所示。

    第四步,配置vdftpd服务程序。

    [root@linuxprobe ~]# yum install vsftpd

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

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

    最后,创建KickStart应答文件。

    毕竟,我们使用 PXE + Kickstart 部署的是一套“无人值守安装系统服务”,而不是“无人值守传输系统光盘镜像服务”,因此还需要让客户端主机能够一边获取光盘镜像,还能够一边自动帮我们填写好安装过程中出现的选项。

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

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

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

    到目前为止,我们的服务基本部署完毕,集体详细解释过程参见Linux就该这么学》,希望本文对刚入职的运维人员有一定的帮助。

  • 相关阅读:
    正则表达式教程
    LINQ查询基本操作
    C# LINQ 基本操作实例
    Sublime Text 3 常用插件以及安装方法
    记一次矩阵列单元格合并和拆分组件的开发
    解析JavaScript函数的多种写法
    jQuery源码逐行分析学习02(第一部分:jQuery的一些变量和函数)
    jQuery源码逐行分析学习01(jQuery的框架结构简化)
    Vue IIS 403-Forbidden
    数组求和:二分递归
  • 原文地址:https://www.cnblogs.com/linuxprobe-sarah/p/10386400.html
Copyright © 2011-2022 走看看