zoukankan      html  css  js  c++  java
  • 架构师的成长之路初片~PXE自动批量装机

    什么是自动批量装机:自动批量装机是:DHCP、TFTP、FTP、PXE三大服务以及一个无人值守机的互相配合,让从未装过系统的机器,自动获取ip到自动装系统到完成的一个新系统安装的过程。(新机开即即可自动安装,无需人工手动安装)

    如图下所示:

    环境准备:两台centos7的服务器,关闭selinux,firewalld 

    1)安装DHCP服务

    包名:dhcpd-server

    主配置文件:/etc/dhcp/dhcpd.conf

    2)修改主配置文件信息

    在文件内读入文件:/usr/share/doc/dhcp*/dhcpd.conf.example

    r   /usr/share/doc/dhcp*/dhcpd.conf.example

    subnet 192.168.4.0 netmask 255.255.255.0 {   //网段、掩码
      range 192.168.4.100 192.168.4.200;      //地址池
      option domain-name-servers 192.168.4.7;  //分配的DNS
      option routers 192.168.4.254;    //分配的网关地址
      default-lease-time 600;            //默认开机连接的时间
      max-lease-time 7200;                //最大连接时间
     next-server 192.168.4.7; //下一跳的服务地址
    filename "pxelinux.0"; //指明网卡引导文件名称

    3)保存后退出

    ################################################################################

    pxelinux.0 文件解释

    Pxelinux.0(网卡引导文件==[网络装机说明书])

    二进制文件,安装一个软件可以获得该文件(syslinux)

    ################################################################################

    4)重启dhcp服务

    systemctl restart dhcpd

    2:TFTP服务

    tftp简单的文件传输协议:默认端口:69

    默认共享的主目录:/var/lib/tftpboot

    任务:负责给客户端提供引导文件

    1) 装包

    [root@pc7 dhcp]# yum -y install tftp-server

    Yum provides */pxelinux.0           //查询那个包产生该文件

    部署pxelinux.0文件

    Yum provides */pxelinux.0           //查询那个包产生该文件

    Yum -y install syslinux            //安装syslinux包

    Rpm -ql syslinux | grep pxelinux.0    //查询软件包清单

    Cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/  //复制

    Ls /var/lib/tftpbot/          //查看确定

    1)在/var/lib/tftpboot/   目录下   创建一个叫pxelinux.0 

    2)将磁盘内的菜单文件 isolinux.cfg        复制并且更名为  /tftpboot/pxelinux.cfg/default

    2.1)修改/tftpboot/pxelinux.cfg/default   文件内的内容

    10、11:图片文件,开机菜单选择名称  删除65行后面的所有内容。

     

     留下

     62行:界面显示的内容

     

    3)

    将光盘内的文(4个)件复制到tftpboot下

    initrd.img(驱动程序) vesamenu.c32(图形模块) splash.png(背景图片) vmlinuz(启动内核)

    4)查看tftpboot下的文件总数(6个)

    initrding       pxelinux.cfg(目录内有个菜单default文件)        vesamenu.c32      pxelinux.0    splash.png     vmlinuz

    安装思路:

    DHCP服务器ip-->next-server-->filename-->pxelinux.0-->ftfp服务:pxelinux.0-->(pxelinux.0)/var/lib/tftpboot/pxelinux.cfg/default(默认菜单(系统)文件)

    ###########################################################

    在读取pxelinux.0文件中,实际上读取的是/var/lib/tftpboot/pxelinux.cfg文件的内容。而pxelinux.cfg就是在开机自启时选择的一个菜单栏。(此文件实际在光盘内的/isolinux/isolinux.cfg内)所以我们得把光盘内的文件复制到引导启动的文件中。/var/lib/tftpboot/pxelinux.cfg中

    初步测试(KVM虚拟机)

    初步测试(VMware)

    网络装机内存大小建议2个G,在编辑处选择

    因为vmware自带dhcp功能,所有得关掉

    见到下图,则表示初步测试成功。

    部署FTP服务

    1)装包

    2)在/var/ftp/centos    创建目录

    3)把光驱挂载到/var/ftp/centos    目录下

    4)重启服务

    5)测试:curl   ftp://192.168.4.7/centos/

    实现无人值守安装

    实现无人值守安装,生成答应文件。

    *安装system-config-kickstart图形的工具

    1)装包:Yum -y install system-config-kickstart

    2)运行:system-config-kickstart

    3)在运行图形工具时弹出的配置程序中,我们直接看(软件包选择),如果不能选择,则修改一下本地服务器的yum文件内的标签修改为:

    修改完后,重新启动程序。

    ]# system-config-kickstart

    如下图安装

     

     

     

     

     

     

     

     

     

    其他的默认不动,配置完成后,点击左上角的保存。

    保存到/root。

    在然后关掉,在虚拟中查看ls即可

    3)利用FTP服务共享应答文件

    ks.cfg文件复制到FTP下

    [root@pc7 ~]# cp ks.cfg /var/ftp/

    [root@pc7 ~]# ls /var/ftp/

    centos  ks.cfg  other  pub

    curl测试:[root@pc7 ~]# curl ftp://192.168.4.7/ks.cfg

    1)修改菜单文件(将ftp文件的路径写到驱动文件中)

    Vim /var/lib/tftpboot/pxelinux.cfg/default

     重启所有的服务:dhcpd  vsftpd   tftp

    总结:

    自动装机一共分为三个服务1个插件与一个引导文件pxelinux.0

    dhcp-->clinent-->tftp-->clinent-->ftp-->clinent

    重要操作步骤有:

    配置dhcpd.conf文件的内容

    配置tftpboot/目录下的文件以及pxelinux.0目录下的菜单文件default

    #注意文件的个数以及文件内容

    /dhcpd.conf 文件内容

    subnet 192.168.4.0 netmask 255.255.255.0 {
    range 192.168.4.100 192.168.4.200;
    option domain-name-servers 192.168.4.7;
    option routers 192.168.4.254;
    default-lease-time 600;
    max-lease-time 7200;
    next-server 192.168.4.7;
    filename "pxelinux.0";
    }

    /default内容

    行尾

    label linux
    menu label ^Install CentOS 7
    menu default
    kernel vmlinuz
    append initrd=initrd.img ks=ftp://192.168.4.7/ks.cfg

    注意.repo文件的标签,否则运行system-config-kickstart会出现问题

    [development]
    name=dvd
    baseurl=file:///mnt/disk
    gpgcheck=0
    enable=1

  • 相关阅读:
    SonarQube
    Gerrit
    Jenkins
    Jenkins
    GitLab
    GitLab
    GitLab
    centos7配置国内yum源
    CentOS7 ping: unknown host www.baidu.com
    VirtualBox下安装CentOS7系统
  • 原文地址:https://www.cnblogs.com/ahaocloud/p/14348740.html
Copyright © 2011-2022 走看看