我已经不满足于一百台电脑的装机了,有了PXE,我要装1000台

Posted 丁CCCCC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我已经不满足于一百台电脑的装机了,有了PXE,我要装1000台相关的知识,希望对你有一定的参考价值。

一、PXE概述

PXE允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统

1.1 优点

  • 规模化:能够同时装多台服务器系统
  • 自动化:自动安装各项服务
  • 远程实现:摆脱传统的U盘,光驱等介质

1.2 前提条件

客户端

  • 客户机的网卡要支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。一般大多数服务器主机都支持,只需在Bios设置中允许从Network或LAN 启动即可

服务端

  • 网络中设置一台DHCP服务器为客户机自动分配地址、指定引导文件位置
  • 服务器要通过TFTP服务( 简单文件传输协议)来提供系统内核和引导镜像文件的下载

二、搭建PXE远程安装服务器

PXE远程安装服务器集成了Centos 7安装源、TFTP 、DHCP、FTP ,能够向客户机裸机发送PXE引导程序、Linux 内核、启动菜单等数据,以及提供安装文件

TFTP
TFTP (简单文件传输协议),使用UDP 69端口。是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小文件传输的应用场合。TFTP服务默认由xinetd服务进行管理

xinetd是新一代的网络守护进程服务程序,又叫超级服务器,常用来管理多种轻量级Internet服务

2.1 安装启动TFTP

安装

  • yum -y install tftp-server xinetd
    安装两个服务
    在这里插入图片描述

更改配置

  • vim /etc/xinetd.d/tftp
    • 修改TFTP配置文件
	protocol		= udp						#TFTP默认使用UDP协议
	wait			= no						#no表示客户机可以多台一起连接,yes表示客户机只能一台一台连接
	server args		= -s /var/lib/tftpboot		#指定TFTP根目录(引导文件的存储路径)
	disable 		= no						#no表示开启TFTP服务

在这里插入图片描述

开启服务

开启服务并加入自启动

  • systemctl start tftp
  • systemctl start xinetd
  • systemctl enable xinetd
  • systemctl enable tftp

在这里插入图片描述

2.2 安装启动DHCP

安装

  • yum -y install dhcp
    • 安装服务
  • cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
    • 复制配置文件至 etc 目录下
      在这里插入图片描述

修改配置文件

  • vim dhcpd.conf
ddns-update-style none;					#禁用DNS动态更新
next-server 192.168.253.11;				#指定TFTP服务器的地址(手动添加)
filename "pxelinux.0";					#指定要下载的PXE引导程序的文件(手动添加)


subnet 192.168.253.0 netmask 255.255.255.0 {				#声明要分配的网段地址
  range 192.168.253.100 192.168.253.150;					#设置地址池
  option routers 192.168.253.11;							#默认网关地址指向TFTP服务器的IP地址

在这里插入图片描述
在这里插入图片描述

开启服务

开启并加入自启动

  • systemctl start dhcpd
  • systemctl enable dhcpd

2.3 Linux 内核、初始化镜像文件

挂载

  • mount /dev/sr0 /mnt
    在这里插入图片描述

复制文件

  • cd /mnt/images/pxeboot
    进入挂载目录内
  • cp vmlinuz /var/lib/tftpboot/
    • 复制Linux系统的内核文件到TFTP根目录下
  • cp initrd.img /var/lib/tftpboot/
    • 复制初始化镜像文件(linux引导加载模块)到TFTP根目录下

在这里插入图片描述

2.4 PXE引导程序

  • yum -y install syslinux
    • 安装服务
    • PXE引导程序由软件包syslinux 提供
  • cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
    • 复制PXE引 导程序到TFTP根目录下
      在这里插入图片描述

2.5 安装 FTP 服务,准备 CentOs 7 安装源

安装、拷贝

  • yum -y install vsftpd
    • 安装服务
  • mkdir /var/ftp/centos7
    • 在ftp目录下创建一个目录
  • cp -rf /mnt/* /var/ftp/centos7/
    • 复制mnt目录下的所有内容

在这里插入图片描述

开启服务

  • systemctl start vsftpd
  • systemctl enable vsftpd

2.6 配置启动菜单文件

默认的启动菜单文件在 TFTP 根目录的 pxelinux.cfg 子目录下,文件名为default

  • mkdir /var/lib/tftpboot/pxelinux.cfg
    • 创建目录
  • im /var/lib/tftpboot/pxelinux.cfg/default
    • 进入文件配置
default auto					#指定默认入口名称
prompt 1						#设置是否等待用户选择,“1”表示等 待用户控制

label auto						#图形安装(默认)引导入口,label 用来定义启动项
kernel vmlinuz					#kernel和append用来定义引导参数
append initrd=initrd.img method=ftp://192.168.253.11/centos7

label linux text				#文本安装引导入口
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.253.11/centos7

label linux rescue				#救援模式引导入口
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.253.11/centos7
~ 

在这里插入图片描述

2.7 关闭防火墙,验证PXE网络安装

关闭防火墙

systemctl stop firewalld.service
setenforce 0

测试
使用此方法安装系统,对虚拟机有一定要求,必须设置内存2g以上,否则安装时会出现报错

开机后出现boot

  • 直接回车
    • 自动通过网络下载安装文件,并进入默认的图形安装入口
  • 执行 linux text 命令
    • 进入文本安装入口
  • 执行 linux rescue 命令
    • 进入救援模式

在这里插入图片描述

按照顺序操作即可完成安装
在这里插入图片描述

三、实现 Kickstart 无人值守安装

3.1 准备安装工具

  • yum -y install system-config-kickstart
    • 安装相应工具

在这里插入图片描述

3.2 打开 Kickstart 配置程序窗口

  • 方法一
    桌面菜单→应用程序→系统工具→Kickstart
    在这里插入图片描述

  • 方法二
    执行"system-config-kickstart" 命令打开
    在这里插入图片描述

3.3 配置kickstart选项

基本配置

  • 默认语言设为 “中文(简体)”
  • 时区设为 “Asia/ Shanghai”
  • 设置root密码
  • 高级配置中勾选 “安装后重启”

在这里插入图片描述

安装方法

  • 选FTP
  • FTP服务器: ftp://192.168.253.11
  • FTP目录: centos7

在这里插入图片描述

引导装载程序选项

  • “安装类型": 安装新引导装载程序
  • “安装选项": 在主引导记录(MBR) 中安装引导装载程序

在这里插入图片描述

分区信息

  • 主引导记录:清除主引导记录
  • 分区:删除所有现存分区
  • 磁盘标签:初始化磁盘标签
  • 布局:添加分区
    • 挂载点: /boot,文件系统类型: xfs, 固定大小: 500M
    • 文件系统类型: swap,固定大小: 4096M
    • 挂载点: /home, 文件系统类型: xfs, 固定大小: 4096M
    • 挂载点: /,文件系统类型: xfs, 使用磁盘上全部未使用空间

在这里插入图片描述

网络配置

  • 添加网络设备"ens33"
  • 网络类型设为“DHCP”

在这里插入图片描述

防火墙配置
禁用SELinux、 禁用防火墙
在这里插入图片描述

安装后脚本

  • 勾选“使用解释程序": /bin/bash
  • 脚本内输入:
mount /dev/sr0 /mnt
mkdir /etc/yum.repos.d/repo.bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo.bak
echo '[local]
name= local
baseurl=ftp://192.168.253.11/centos7
enabled=1
gpgcheck=0' > /etc/yum.repos.d/local.repo

在这里插入图片描述

其他选项不做变动

3.4 保存文件

  • 选择 Kickstart 配置程序窗口的 文件 →保存,选择指定保存位置,文件名为ks.cfg,默认保存在/root/ks.cfg
    在这里插入图片描述

  • cp /root/ks.cfg /var/ftp/ks.cfg
    在这里插入图片描述

3.5 配置需要安装的软件包

设置桌面安装
将 /root/anaconda-ks.cfg 的软件包安装脚本复制到ks.cfg文件中,只需要复制 %packages到%end
部分即可

  • vim /root/anaconda-ks.cfg
    在这里插入图片描述

  • vim /var/ftp/ks.cfg

    • 进入配置文件内粘贴
      在这里插入图片描述

设置最小化安装

  • 复制以下内容到 /var/ftp/ks.cfg
    • %packages
      @^minimal
      %end

3.6 编辑引导菜单文件 default, 添加ks引导参数

  • vim /var/lib/tftpboot/pxelinux.cfg/default
    • 进入引导文件编辑
  • prompt 0
    • 设置是否等待用户选择,“0”表示不等待用户控制
  • append initrd=initrd.img method=ftp://192.168.253.11/centos7 ks=ftp://192.168.253.11/ks.cfg
    • 添加ks引导参数以指定ks.cfg 应答文件的URL 路径

在这里插入图片描述

3.7 测试

新的客户机用 pxe 方式引导时,自动下载 ks.cfg 文件,根据文件设置自动安装,无需手动干预
在这里插入图片描述

以上是关于我已经不满足于一百台电脑的装机了,有了PXE,我要装1000台的主要内容,如果未能解决你的问题,请参考以下文章

PXE高效批量网络装机

PXE远程装机

PXE高效批量网络装机

cobbler批量自动装机

PXE高效批量网络装机

PXE自动装机