美文网首页IT@程序员猿媛
CentOs7 PXE自动批量部署

CentOs7 PXE自动批量部署

作者: 高多金 | 来源:发表于2020-08-09 15:41 被阅读0次

    CentOs7 PXE自动批量部署

    目录

    • 主服务器信息
    • 环境
    • PXE工作原理
    • 部署主服务器
      配置网卡IP
      配置本地yum源
      安装配置DHCP
      安装配置TFTP
      获取PXE程序
      安装配置HTTP
      配置ks.cfg文件(安装信息文件)建议使用kickstart安装
      配置PEX程序默认配置文件,指定路径
      配置完成

    主服务器信息

    • 系统:CentOs7
    • 配置:4C 4G 50GB
    • 部署软件:DHCP tftp http
    • 网络:VM虚拟机 仅主机网络

    环境

    1. VM虚拟机,仅主机模式取消勾选DHCP
    image-20200809112512252.png
    1. 在win10机器上的网络配置中,配置IP
    image-20200809122257338.png
    1. 配置成和虚拟机仅主机模式的IP网段一致
    image-20200809122340480.png

    PXE工作原理

    1. CentOs7主服务器部署DHCP服务器,使用DHCP服务器 分发网络信息,客户机网卡连接到网络,通过DHCP服务器发送tftp服务器IP和PXE程序到客户机
    2. 客户机连接到网络后读取tftp网络地址,在tftp的根目录下找到pxe启动程序,在内存中执行
    3. 执行pxe程序后,到指定位置读取镜像,配置文件等,执行自动装机,通过http传输大文件

    部署主服务器

    1. 配置网卡IP
    vim /etc/sysconfig/network-scripts/ifcfg-ens33
    #需要配置的地方有
    BOOTPROTO=static    #把dhcp 改为 static 静态IP
    ONBOOT=yes          #把no 改为 yes 启动网卡
    #在最后添加
    IPADDR=192.168.121.20
    GATEWAY=192.168.121.1
    NETMASK=255.255.255.0
    DNS1=192.168.121.1
    #重启网卡
    systemctl restart network
    
    image-20200809130434383.png
    1. 配置本地yum源
    image-20200809124022730.png
    • 挂载磁盘
    mkdir -p /media/cdrom/
    mount /dev/sr0 /media/cdrom/
    
    CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
    EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
    
    image-20200809130257934.png
    • 配置yum
    cd /etc/yum.repos.d/
    #建议把之前所有的源删除
    
    vi dvd.repo
    #文件内容
    
    [development]
    name=centos7
    baseurl=file:///media/cdrom
    enabled=1
    gpgcheck=0   
    
    #清除缓存
    yum clean all
    
    image-20200809130228598.png
    1. 配置服务器
    yum -y install dhcp tftp-server xinetd
    
    • 配置dhcp服务器
    • dhcp服务器的配置文件是:/etc/dhcp/dhcpd.conf
    • 模板文件在:/usr/share/doc/dhcp*/dhcpd.conf.example
    • 开始配置
    vi /etc/dhcp/dhcpd.conf
    #文件内容如下
    
    #开启给无操作系统设备分配ip
    allow booting;
    allow bootp;
    #dns配置
    ddns-update-style interim;
    ignore client-updates;
    #分配IP的地址段和子网掩码
    subnet 192.168.121.0  netmask 255.255.255.0{
    #IP地址的子网掩码
    option subnet-mask 255.255.255.0;
    #定义dns服务器地址 配置成主服务器地址(dhcp)
    option domain-name-servers 192.168.121.20;
    #dhcp地址池范围 100个可分配的IP地址
    range dynamic-bootp 192.168.121.100 192.168.121.200;
    #租约默认使用时间21600秒 6小时
    default-lease-time 21600;
    #最大租约时间 
    max-lease-time 43200;
    #主服务器地址 当客户端服务器获取到IP地址后 主动到主服务器上获取引导文件
    next-server 192.168.121.20;     #tftp服务器地址
    filename "pxelinux.0";         #根目录下的pxe程序
    }
    
    image-20200809130121008.png
    • 启动dhcp 并设置开机自启
    systemctl start dhcpd
    #设置开机自启
    systemctl enable dhcpd
    
    Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
    
    image-20200809130203168.png
    • 测试临时关闭防火墙和selinux
    systemctl stop firewalld
    setenforce 0
    
    • 配置tftp
    #tftp的配置文件在:/etc/xinetd.d/tftp
    vim /etc/xinetd.d/tftp
    #修改一处
    把disable = yes 改为 no  
    
    image-20200809130729808.png
    • 保存退出
    • 启动服务器并设置开启自启
    systemctl start xinetd
    systemctl enable xinetd
    
    • 可以通过命令查看是否启动
    chkconfig --list
    
    image-20200809131511625.png
    • 表示开启
    • tftp的根目录是 /var/lib/tftpboot/ 客户机会读取此根目录
    • 接下来 需要把pxe执行程序 “pxelinux.0” 放入tftp的根目录 用于让客户机拉去
    yum provides "*/pxelinux.0"  #使用此命令查找什么包中存在此文件
    
    image-20200809132128113.png
    • 安装syslinux
    yum -y install syslinux
    
    #安装成功后查找pxe执行程序所在目录
    rpm -ql syslinux |grep pxe
    #复制文件到tftp根目录
    cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
    
    image-20200809132401232.png
    • 获取到pxe执行程序(引导文件)后 并复制到了tftp根目录下,接下来需要把pxe程序工作所需要的配置文件,镜像等,放置合适位置
    #在tftp根目录下创建文件夹
    cd /var/lib/tftpboot/
    mkdir pxelinux.cfg
    
    • 在挂在目录/media/cdrom下中的iso镜像文件里,有一个 “isolinux” 目录十分重要
    • 其中的isolinux.cfg文件是 pxe执行程序的默认配置文件,用来配置开机菜单以及菜单对应的功能,所以我们把他复制到tftp根目录中pxelinux.cfg目录下
    cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
    
    • 之后把“isolinux” 目录下的内容 全部复制到 tftp根目录下
    cp /media/cdrom/isolinux/* /var/lib/tftpboot/
    
    image-20200809133858246.png
    • 此目录下 最重要的两个文件 是:”vmlinuz“ ,”initrd.img“ 这两个文件一定要匹配操作系统,他们决定了自动安装的系统版本,其中vmlinuz是内核文件 initrd.img是对应的驱动文件,如果想安装不同的系统版本就找对应的光盘里找对应文件
    • 安装http用于传输大文件
    yum -y install httpd
    #启动并设置开机自启
    systemctl start httpd
    systemctl enable httpd
    
    image-20200809135358004.png
    • 到httpd的根目录下创建目录
    cd /var/www/html/
    mkdir pxe
    mkdir ks     #后续说明此目录
    #并把iso镜像挂载到此目录下
    umount /media/cdrom/
    mount /dev/cdrom /var/www/html/pxe/
    
    image-20200809135652044.png
    • 长期挂载
    vim /etc/fstab
    #末尾加入行
    /dev/cdrom                  /var/www/html/pxe  iso9660 defaults,loop 0 0
    
    image-20200809140117925.png
    • 接下来 配置系统信息,linux中有一个工具是:”system-config-kickstart“ 用于配置启动启动时的配置选项并可以导出配置文件,一般在root目录下有一个 anaconda-ks.cfg 文件 就是装系统是的配置选项,如时区,密码,磁盘分区等信息,可以直接使用此文件来自动安装一样的系统配置
    • 第一种方法直接复制root目录下的文件 这样就是把现在使用的系统配置复制了一份 后续的客户机都是找个配置的系统
    • 我们把root下的配置文件复制到http下
    cp /root/anaconda-ks.cfg /var/www/html/ks/ks.cfg  #之前创建的ks目录
    #把ks.cfg文件授权给apache
    chown apache:apache ks.cfg
    
    image-20200809141207172.png
    • 在ks.cfg中指定http目录 用于安装系统的iso文件
    vim /var/www/html/ks/ks.cfg
    #把备注  Use CDROM installation media下的cdrom 修改为http地址
    url  --url=http://192.168.121.20/pxe
    
    image-20200809141656506.png
    • 之后把文件放到http根目录的ks目录下
    • 第二种方法使用kickstart
    • 把yum配置成
    image-20200809144510615.png
    • 安装kickstart
    yum -y install system-config-kickstart
    #使用 system-config-kickstart 命令打开工具
    system-config-kickstart
    
    • 设置默认语言中文或者英文,键盘,时区,设置root密码,勾选安装后重启
    image-20200809145728794.png
    • 安装方法选择http 输入http服务器和目录
    image-20200809145916997.png
    • 引导程序
    image-20200809150523180.png
    • 配置磁盘分区 裸机配置
    image-20200809150648428.png
    • 分区配置
    image-20200809150746251.png image-20200809150817106.png image-20200809150849697.png
    • 添加网卡配置
    image-20200809150919115.png image-20200809151048688.png
    • 内核依旧识别eth0
    image-20200809151209128.png
    • 安装默认软件包
    image-20200809151556652.png image-20200809151626483.png
    • 最后两个脚本 先不管
    • 配置好之后 把文件导出
    image-20200809151735188.png
    • 保存到能找到的位置上
    image-20200809151805397.png
    • 配置好之后 把ks文件放入http目录下
    cp ks.cfg /var/www/html/ks/ks.cfg
    
    • 然后在pxe程序默认文件中指定ks.cfg文件
    vim /var/lib/tftpboot/pxelinux.cfg/default
    
    • 配置文件
    • 是否修改都不影响结果 就是等待时间长
    image-20200809142644844.png image-20200809143145271.png image-20200809142804541.png

    最重要的两块

    1. label linux 是装系统的第一个选项 安装系统,menu 是菜单名称,kernel是内核版本,append 是镜像版本和启动镜像的位置
    2. label check 是 装系统的第二个选项 检查系统并安装 其中的menu default 是默认选项的意思
    image-20200809143112768.png

    修改前

    image-20200809141854973.png

    修改后

    image-20200809142237374.png

    修改后保存退出

    然后可以创建一个仅主机的vm测试

    相关文章

      网友评论

        本文标题:CentOs7 PXE自动批量部署

        本文链接:https://www.haomeiwen.com/subject/dcwldktx.html