前言
本章讲解的是,公司网络环境,需要部署大量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自动部署系统视频效果
结言
到此安装结束,你可已去试下,一台新服务器。接好公司环境网线,开机设置网卡启动,就会自动帮你安装系统了。