Centos7 Kickstart+pxe自动判断uefi或legacy网卡启动批量安装Linux系统

前言

本章讲解的是,公司网络环境,需要部署大量Linux系统。有些主板只支持uefi,有些支持uefi或legacy。本章讲解的是自动判断网卡启动是uefi还是legacy,实现批量安装系统。

环境准备

使用批量安装的iso镜像,先手动安装一个全新系统。虚拟机也行,但是网络记得桥接模式。本机使用的是CentOS-7-x86_64-Minimal-2207-02.iso
IP:192.168.11.184(公司网络ip环境)
镜像下载地址:https://mirrors.aliyun.com/centos/

重要:不多讲原理,基本复制粘贴。稍微改改自己环境的配置就ok

部署流程

  • 关闭防火墙SE,和禁止开机自启

    systemctl stop firewalld
    systemctl disable firewalld
    setenforce 0
    sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
    
  • 安装dhcp服务并配置相关信息
    注意:这里根据自己网络环境来部署

    yum install dhcp -y
    
    vim /etc/dhcp/dhcpd.conf
    
    option space pxelinux;
    option pxelinux.magic code 208 = string;
    option pxelinux.configfile code 209 = text;
    option pxelinux.pathprefix code 210 = text;
    option pxelinux.reboottime code 211 = unsigned integer 32;
    option architecture-type code 93 = unsigned integer 16;
    
    subnet 192.168.11.0 netmask 255.255.255.0 {
      option routers 192.168.11.4;             # 设置客户端的默认网关
      range 192.168.11.20 192.168.11.200;      # 设置客户端可分配的起始IP至结束IP范围
    
      class "pxeclients" {
          match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
          next-server 192.168.11.184;    		# 本机IP,引导文件的服务器IP
    
          if option architecture-type = 00:07 {
            filename "uefi/shim.efi";         	# 采用shim打包的efi引导镜像
          } else {
            filename "pxelinux.0";   			# syslinux打包的BIOS引导映像
          }
      }
    }
    
    systemctl restart dhcpd
    systemctl enable dhcpd
    
  • 安装vsftpd服务

    yum install vsftpd -y
    
    vim /etc/vsftpd/vsftpd.conf
    # 这两个注释删除
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    
    systemctl restart vsftpd
    systemctl enable vsftpd
    
  • 本教程使用ftp模式共享ios文件,上传镜像,此镜为你要批量装的镜像,我这里上传的是centos7。

    #镜像上传到ios目录
    mkdir /var/ftp/{dvd,iso}
    mount /var/ftp/iso/CentOS-7-x86_64-Minimal-2207-02.iso /var/ftp/dvd
    
    #加入开机挂载
    echo "/var/ftp/iso/CentOS-7-x86_64-Minimal-2207-02.iso /var/ftp/dvd iso9660 loop    0 0" >> /etc/fstab
    mount -a
    
  • 安装tftp服务

    yum install tftp-server -y
    vim  /etc/xinetd.d/tftp
    #修改disable选项
    disable		= no
    
    systemctl restart tftp
    systemctl enable tftp
    
    
  • 安装syslinux服务,及相关文件

    yum install syslinux -y
    cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot
    cp /var/ftp/dvd/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
    rpm2cpio /var/ftp/dvd/Packages/shim-x64-15-8.el7.x86_64.rpm | cpio -dimv
    rpm2cpio /var/ftp/dvd/Packages/grub2-efi-x64-2.02-0.87.0.1.el7.centos.9.x86_64.rpm | cpio -dimv
    mkdir /var/lib/tftpboot/uefi
    cp boot/efi/EFI/centos/shim.efi /var/lib/tftpboot/uefi/
    cp boot/efi/EFI/centos/grubx64.efi /var/lib/tftpboot/uefi/
    chmod 644 /var/lib/tftpboot/uefi/*
    
    vim /var/lib/tftpboot/uefi/grub.cfg
    set timeout=1
      menuentry 'Install CentOS 7' {
      linuxefi uefi/vmlinuz ip=dhcp inst.repo=ftp://192.168.11.184/dvd inst.ks=ftp://192.168.11.184/ks.cfg
      initrdefi uefi/initrd.img
    }
    
    cp /var/ftp/dvd/images/pxeboot/{vmlinuz,initrd.img}  /var/lib/tftpboot/uefi/
    mkdir /var/lib/tftpboot/pxelinux.cfg
    
    vim /var/lib/tftpboot/pxelinux.cfg/default
    default linux
    prompt 1
    timeout 10
    
    label linux
      menu label ^Install CentOS 7
      menu default  #默认选择该项启动
      kernel vmlinuz
      append initrd=initrd.img ip=dhcp inst.repo=ftp://192.168.11.184/dvd inst.ks=ftp://192.168.11.184/ks.cfg
    
  • 编辑ks文件

    我直接把模板贴出来了,如果你想自己生成ks文件,可以借助图形化工具system-config-kickstart这个服务安装装后就可以生成ks文件,这个文件就是代替你部署系统的时候手动去点击的那些选项。

    注意: ks文件一定要放在/var/ftp/下,并且权限为 644

    vim /var/ftp/ks.cfg
    
    #为系统设置验证选项
    auth --enableshadow --passalgo=sha512
    #cdrom
    #图形化安装系统,不是安装图形化系统,有区别的
    graphical
    #决定是否在系统第一次引导时启动"设置代理".如果启用,firstboot软件包必须被安装.如果不指定,这个选项是缺省为禁用的
    firstboot --disable
    #系统键盘类型
    keyboard --vckeymap=cn --xlayouts='cn'
    #语言
    lang zh_CN.UTF-8
    #root密码,就是root
    rootpw --iscrypted $1$Ov9w.uuf$i5xxnVAy3ZwK7GIEyRymU0
    #网卡模式
    network  --bootproto=dhcp
    #指定时区
    timezone Asia/Shanghai --isUtc
    #指定引导装载程序怎样被安装.对于安装和升级,这个选项都是必需的
    bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
    #使用自动分区
    autopart --type=lvm
    #清理主分区记录
    zerombr
    #ftp安装模式
    url --url="ftp://192.168.11.184/dvd"
    #删除sda系统分区,防止系统盘之前装过系统,初始化标签
    clearpart --all --drives=sda --initlabel
    reboot
    
    %packages
    %end
    # 禁用kdump
    %addon com_redhat_kdump --disable --reserve-mb='auto'
    %end
    
    chmod 644 /var/ftp/ks.cfg
    

自动安装系统效果视频

Kickstart自动部署系统视频效果

Kickstart自动部署系统视频效果

结言

到此安装结束,你可已去试下,一台新服务器。接好公司环境网线,开机设置网卡启动,就会自动帮你安装系统了。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

系统运维

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值