无人值守自动化安装

## PXE无人值守自动化安装

实验环境

dhcp server:Cerntos7 192.168.10.121

tftp server:Centos7 192.168.10.121

vsftp server:Centso7 192.168.10.122
注:防火墙、selinux均已关闭,yum源为本地光盘镜像

PXE

  • PXE:preboot execute environment(预引导启动环境),由Intel公司开发的网络引导技术,工作于C/S架构,基于网络引导启动客户端操作系统的安装。允许客户端通过网络从远程服务器下载引导镜像,并加载安装整个文件或整个操作系统。
  • 依赖dhcp,tftp,file server(vsftpd,httpd,nfs等),客户端主机网卡也需支持BOOTROOM芯片,支持PXE相关协议。
  • dhcp分配IP地址及指定引导文件位置。
  • tftp提供引导镜像文件的下载
  • vsftpd提供操作系统安装包的下载,将光盘的内容复制到file server中
  • 网络引导Linux的相关软件由syslinux提供,需要安装syslinux程序,syslinux程序的相关文件目录:/usr/share/syslinux

TFTP服务

  • 简单文件传输协议(Trivial File Transfer Protocol)网络文件基于UDP传输的简单的协议 ,端口为UDP 69

  • 属于C/S架构:客户端程序tftp,服务端程序tftp-server,基于守护进程xinetd来运行。

  • xinetd配置文件:/etc/xinetd.d/tftp

  • tftp服务端提供客户端文件访问根目录:/var/lib/tftpboot

PXE自动化安装工作流程

  1. 客户机开机后广播发送dhcp的FIND帧
  2. dhcp服务器收到该帧够进行IP地址分配,并返回TFTP服务器的地址
  3. 客户端通过tftp服务获取pxe引导文件,将内核与初始化镜像文件加载至内存中运行
  4. 通过default中启动菜单文件中指定的ks.cfg位置向tftp服务器发起请求获取自动应答文件
  5. tftp服务器向其返回ks.cfg自动应答文件
  6. 通过自动应答文件获取系统镜像位置,并按照文件配置进行自动化安装

其他

  • pxelinux.0:pxe引导程序(由syslinux程序提供)
  • pxelinux.cfg/default:系统启动时的启动菜单,指出要加载的内核镜像和inird 镜像,然后引导。
  • vmlinuz:Linux内核
  • initrd.img:初始化镜像文件,存放了引导时的一些驱动程序

搭建实践

  1. 搭建TFTP服务

    • 首先安装守护进程xinetd(为tftp等服务提供)

      image-20191105134847605

    • 安装tftp服务

      image-20191105134932973

    • 修改tftp配置文件

      image-20191105135804063

      image-20191105135911759

      service tftp
      {
              socket_type             = dgram
              protocol                = udp
              wait                    = no #不等待
              user                    = root
              server                  = /usr/sbin/in.tftpd
              server_args             = -s /var/lib/tftpboot #默认共享文件目录
              disable                 = no #是否不可用,no表示tftp可用
              per_source              = 11
              cps                     = 100 2
              flags                   = IPv4
      }
      
      
    • 启动服务

      image-20191105135946571

  2. 将所需配置文件放置tftp服务器共享目录下

    • 放置内核、初始化镜像、引导菜单

      image-20191105140210214

    • 安装syslinux,并将其附带的pxe引导文件复制至共享目录下

      image-20191105140526583

      image-20191105140557047

    • 修改cfg引导菜单文件

      image-20191105140653737

      image-20191105140847878

      image-20191105150439394

      default linux #默认使用linux选项
      prompt 0 #是否提示  0不提示(不等待用户选择直接使用默认项) 1提示
      timeout 15 #延时
      
      label linux
        menu label ^Install CentOS 7
        kernel vmlinuz
        append initrd=initrd.img inst.ks=ftp://192.168.10.122/ks.cfg quiet  #附加参数,initrd指定初始化镜像文件位置,inst.ks指定kickstart自动应答文件位置
      

      注:default指定启动的默认项,应当设置为安装项

      image-20191105141159431

    • 使用tree查看目录结构

      image-20191105141230862

  3. 安装配置DHCP服务

    • 安装服务

      image-20191105141451703

    • 修改配置文件

      image-20191105141633821

      image-20191105144932197

      subnet 192.168.10.0 netmask 255.255.255.0 {
        range 192.168.10.10 192.168.10.60;
        option domain-name-servers 114.114.114.114;
        option domain-name "www.lg.com";
        option routers 192.168.10.2;
        default-lease-time 600;
        max-lease-time 7200;
        next-server 192.168.10.121  #TFTP服务器ip地址
        filename "pxelinux.0";  #pxe引导文件名
      }
      
    • 启动服务

      image-20191105142221352

    • 客户机测试

      image-20191105144552127

  4. 安装配置VSFTP服务

    • 安装服务

      image-20191105150704967

    • 安装kickstart(用于图形化生产自动应答文件,需要图形化界面)

      image-20191105152117507

    • 启动system-config-kickstart图形化生成自动应答文件

      image-20191105152401861

      设置默认语言、键盘布局、时区、root密码、cpu架构类型、是否安装后重启、是否使用文本安装

      image-20191105152635699

      指定安装方式为全新安装,指定系统镜像文件位置

      image-20191105152712377

      指定引导安装类型等选项

      image-20191105152741854

      设置分区配置

      image-20191105152839603

      添加/boot分区

      image-20191105152958548

      添加swap交换分区,swap不需要选择挂载点

      image-20191105153041931

      添加/根分区

      image-20191105153104072

      分区添加完成后查看分区配置

      image-20191105153121380

      网络配置,当需要额外的网卡配置时指定

      image-20191105153200856

      密码加密验证配置

      image-20191105153235733

      防火墙、SELinux配置

      image-20191105153258872

      显示配置

      image-20191105153316374

      选择安装的软件包,若yum配置文件中库的名称不是development则会出现如下错误

      image-20191105153402578

      解决办法:

      image-20191105154005903

      image-20191105153945254

      修改后需要重新启动kickstart程序

      image-20191105154332316

      安装前执行的脚本配置

      image-20191105154347482

      安装完成后执行的脚本配置

      image-20191105154405292

      设置完成后,保存配置文件至指定目录

      image-20191105154426414

      image-20191105154601269

      将文件放置vsftp共享目录/var/ftp/下即可

      image-20191105154837852

      image-20191105154854356
      注:使用ksvalidator命令检测自动应答文件语法是否错误

    • 挂载系统镜像文件至ftp共享目录下

      image-20191105151819983

  • 启动服务

    image-20191105155039317

测试

  • 创建测试虚拟机

    image-20191105155227480

  • 开机测试

    image-20191105160948613

    image-20191105155459713

    image-20191105162455748

    image-20191105155554186

    image-20191105160745382

posted @ 2019-11-05 19:58  MirL  阅读(688)  评论(0编辑  收藏  举报