一.PXE

PXE是Preboot Execution Environment的缩写,预启动执行环境

PXE使用需要注意以下几点:

  • 客户端的网卡必须要支持PXE功能,并且开机选择从网卡启动,进入PXE程序
  • PXE服务器必须要提供至少含有DHCP以及TFTP的服务!
  • DHCP服务提供客户端网络,并且告知TFTP所在的位置;
  • TFTP提供客户端boot loader及kernel file下载路径

PXE工作流程:

Client向PXE Server上的DHCP发送IP地址请求消息,返回Client的IP地址,同时将pxe环境下的Boot
loader文件pxelinux.0的位置信息传送给Client Client向PXE Server上的TFTP请求pxelinux.0
Client执行接收到的pxelinux.0文件
Client向TFTP请求pxelinux.cfg文件(里面放置的是是启动菜单,即grub的配置文件)
Client向TFTP发送Linux内核请求信息 Client向TFTP发送根文件请求信息 Client加载Linux内核
Client通过nfs/ftp/http下载系统安装文件进行安装


二. Kickstart

Kickstart是一种无人值守的安装方式
linux下的批量部署
在安装过程中记录人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在自动安装过程中出现要填写参数的情况,安装程序首先会去查找ks.cfg文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便会弹出对话框手工填写

Kickstart配置文件分为3部分

1.命令部分
配置系统
用户提示省略的指令

2.%packages部分
为安装选择软件包和组
解决相关依赖性问题

3.脚本部分
定制系统的可选择部分
再安装前运行%pre脚本
安装后运行%post脚本


三.测试

1.关闭防火墙和SElinux

systemctl stop firewalld
setenforce 0

2.DHCP
DHCP主要是提供客户端网络参数与TFTP的位置,以及boot loader的文件名

vi /etc/dhcp/dhcpd.conf
  ddns-update-style interim;
  ignore client-updates;
  subnet 192.168.62.0 netmask 255.255.255.0 { #设置网段
  option routers 192.168.62.2; #设置网关
  option subnet-mask 255.255.255.0; #设置子网掩码
  option domain-name-servers 192.168.62.2; #设置dns服务器地址
  range dynamic-bootp 192.168.62.200 192.168.62.205; #IP地址租用的范围
  default-lease-time 21600; #默认租约时间
  max-lease-time 43200; #大租约时间
  next-server 192.168.62.136; #tftp服务器地址
  filename "pxelinux.0"; #tftp服务器根目录下面的文件
  }
systemctl start dhcpd   #启动服务
systemctl enable dhcpd   #设置开机自启

linux下的批量部署
3.TFTP
boot loader文件pxelinux.0以及内核相关的配置文件(目录pxelinux.cfg下)主要都是由TFTP来提供的!

yum install tftp-server xinetd -y
vim /etc/xinetd.d/tftp
disable = no #此项修改,其它不变;保存退出
systemctl restart xinetd
systemctl enable xinetd

linux下的批量部署
4.PXE的bootloader和相关配置文件
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。更加确切地说:SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘

yum install syslinux -y
cd /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 .
cp /media/images/pxeboot/{vmlinuz,initrd.img} .
cp /media/isolinux/{vesamenu.c32,boot.msg} .
mkdir pxelinux.cfg
cp /media/isolinux/isolinux.cfg pxelinux.cfg/default

vi pxelinux.cfg/default  #删除60行之后的,在文件末尾添加以下内容
  label linux
  menu label ^Install CentOS 74
  kernel vmlinuz
  append initrd=initrd.img ks=http://192.168.62.136/config/ks.cfg biosdevname=0 net.ifnames=0

linux下的批量部署
linux下的批量部署
5.HTTP
通过HTTP协议把光盘镜像内容传给客户端

yum install httpd -y
cp -rf /mnt/* /var/www/html/
mkdir -p /var/www/html/config #新建目录,把自定义的文件、脚本等放置于此

linux下的批量部署
6.Kickstart配置文件

vi /var/www/html/config/ks.cfg
  #platform=x86, AMD64 或 Intel EM64T
  #version=
  # Firewall configuration
  firewall --disabled
  # Install OS instead of upgrade
  install
  # Use network installation
  url --url="http://192.168.62.136/"
  #!!!
  # Use CDROM installation media
  repo --name="yum" --baseurl=http://192.168.62.136/
  #!!!
  # Root password  (设置初始密码)
  rootpw --iscrypted $1$mi4lP.ZY$j5UDGX34knfGuSYPwd82u/ #redhat
  # openssl passwd -1   (密码用openssl加密)
  # Use graphical install graphical or text(使用图形化界面或者文本)
  text
  # Run the Setup Agent on first boot
  firstboot --disable
  # System keyboard
  keyboard us
  # System language
  lang en_US.UTF-8
  # SELinux configuration
  selinux --disabled
  # Reboot after installation
  reboot
  # System timezone
  timezone --isUtc Asia/Shanghai
  # Network information
  network --bootproto=dhcp --device=eth0 --noipv6 --activate
  network --hostname=web
  #!!!
  # System bootloader configuration
  bootloader --location=mbr
  # Clear the Master Boot Record
  zerombr
  # Partition clearing information
  clearpart --all --initlabel
  #!!!
  # Disk partitioning information (分区信息)
  part /boot --asprimary --fstype="ext4" --ondisk=sda --size=200
  part swap --fstype="swap" --ondisk=sda --size=4096
  part / --fstype="ext4" --ondisk=sda --size=20480
  #!!!
  %packages
  @core
  wget
  %end
  %post  
  #yum_client
  cd /etc/yum.repos.d/
  rm -rf *
  wget http://192.168.62.136/config/client.repo
  %end
  %addon com_redhat_kdump --disable --reserve-mb='auto'
  %end       

linux下的批量部署


四.总结

  • 在写文件目录的路径时一定要细心,否则很容易报错
  • 代码中的ip地址,要能前后对应上
  • 因为在操作过程中很多地方都会用到IP地址,所以最好提前将IP改成静态的vi /etc/sysconfig/network-scripts/ifcfg-ens33
  • 客户端的yum源是从服务端通过http服务下载的,所以要提前开启http服务systemctl start httpd ,除此之外,要记得先在服务端把yum的配置文件client.repo配置好并放在/var/www/html/config/目录下,这样才可以使新装好的机子直接可以使用yum
    linux下的批量部署

相关文章:

  • 2021-10-14
  • 2021-04-30
  • 2022-01-15
  • 2021-09-17
  • 2021-12-22
  • 2022-12-23
  • 2021-08-11
猜你喜欢
  • 2021-05-21
  • 2021-11-21
  • 2021-12-03
  • 2022-01-14
  • 2021-07-18
  • 2022-12-23
相关资源
相似解决方案