我已经不满足于一百台电脑的装机了,有了PXE,我要装1000台
Posted 丁CCCCC
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我已经不满足于一百台电脑的装机了,有了PXE,我要装1000台相关的知识,希望对你有一定的参考价值。
PXE批量装机
一、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 目录下
- 复制配置文件至 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根目录下
- 复制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
- %packages
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台的主要内容,如果未能解决你的问题,请参考以下文章