基本部署过程
1. 准备centos7 安装源(YUM仓库)
2. 启用TFTP服务,并提供内核文件、引导程序
3. 启用DHCP服务,用来分配地址、指出引导程序位置
4. 配置启动菜单
5.TFTP服务及引导文件
安装tftp-server软件包,启用tftp服务
准备内核文件vmlinuz、初始化镜像initrd.img
准备引导程序文件pxelinux.0
首先下载需要的软件包: yum -y install tftp. vaftpd. DHCP
1: PXE基础装机环境
步骤一: 通过HTTP or FTP 方式发布CentOS7 软件源 < 此环境使用FTP 发布 >
1) 快速构建 ftp 服务器 (若已构建 此步可省略)
1 | [root@rootlocahost ~]# yum -y install vsftpd //装包 |
2 | [root@rootlocahost ~]# systemctl start vsftpd //开启ftp服务 |
2) 准备yum仓库,分到别挂载ftp子目录 and 本地
ftp网页存放路径: /var/ftp
1 | [root@rootlocahost ~]# mkdir /var/ftp/yindao | //创建ftp子目录 |
2 | [root@rootlocahost ~]# mount /dev/cdrom /var/ftp/yindao | //挂载到ftp子目录 |
3 | [root@rootlocahost ~]# mount /dev/cdrom /本地目录 | //挂载到本地 |
步骤二: 确保yum仓库ftp资源可用
从计算机访问ftp://服务端IP地址, 可以看到仓库资源
下载 并配置 TFTP
TFTP 主配置文件: /etc/xinetd.d/tftp
进入tftp 并修改配置
1 | [root@rootlocalhost ~]# yum -y install tftp | // 下载 FTFP 服务 |
2 | [root@rootlocahost ~]# vi /etc/xinetd.d/tftp | //进入tftp主配置文件 |
3 | server_args = -s /var/lib/tftpboot | //默认tftp根目录 |
4 | disable = no | //修改 |
1 | [root@rootlocahost ~]# systemctl start tftp | // 打开TFTP服务 |
2 | [root@rootlocahost ~]# systemctl enable tftp | //设置开机自启动tftp |
3 | [root@rootlocahost ~]# netstat -anultp |grep 69 | //查看是否开启 |
步骤三:将内核文件 vmlinuz 初始化镜像 initrd.img 引导程序文件 pxelinux.0 复制至 TFTP根目录即< /var/lib/tftpboot >
Vmlinuz 内核文件
vmlinuz是可引导的、压缩的内核。“vm”代表 “Virtual Memory”。Linux 支持虚拟内存,Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz,它一般是一个软链接。
vmlinux是未压缩的内核,vmlinuz是vmlinux的压缩文件
initrd.img 初始化镜像
类RedHat 系统从vmlinuz 核心引导后,会读取initrd.img 启动镜像。该文件中包含驱动模块等信息,是非常重要的文件。不同版本使用的格式不同 ( aaa 为本地目录 )
Syslinux 引导加载程序
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。不仅支持采用BIOS结构的主板,而且从6.0版也开始支持采用EFI结构的新型主板
1 | [root@rootlocahost ~]# yum -y install syslinux | //安装 Syslinux 引导程序 |
2 | [root@rootlocahost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ | //将pxelinux.0 复制到tftp根目录 |
步骤四: 配置 DHCP 服务 为PXE客户机分配IP地址
DHCP服务器基本概念:
DHCP租期:允许客户机租用IP地址的时间期限,单位为秒
DHCP作用域:分配给客户机的IP地址所在的网段
DHCP地址池:用来动态分配的IP地址的范围
DHCP服务端:软件包dhcp、系统服务dhcpd
DHCP服务端配置文件:/etc/dhcp/dhcpd.conf
配置文件详解
#全局配置
#动态dns更新(禁用)
ddns-update-style none;
#默认租约时间(秒)
default-lease-time 21600;
#最大租约时间
max-lease-time 43200;
#为客户机指定解析主机名时的默认搜索域
#option domain-name "domain.org";
#dns服务器地址
#option domain-name-servers 202.106.0.20;
#子网段声明配置
#声明网段
subnet 192.168.10.0 netmask 255.255.255.0 {
#设置地址池
range 192.168.10.50 192.168.10.60
#子网掩码
option subnet-mask 255.255.255.0;
#默认网关地址
option routers 192.168.10.1;
}
1) 配置 DHCP 服务端
1 | [root@localhost ~]# yum -y install dhcp | //下载 dhcp 服务 |
2 | [root@localhost ~]# vi /etc/dhcp/dhcpd.conf | //进入 dhcp 主配置文件 |
2) 建立dhcpd.conf 服务配置
// next-server: 指定 TFTP 服务器地址
// fiilename: 指定要下载的引导程序文件
1 | [root@localhost ~]# vim /etc/dhcp/dhcpd.conf | // j进入 DHCP 主配置文件并修改 |
2 | subnet 192.168.10.0 netmask 255.255.255.0 { | // 要分配的网段及掩码 |
3 | range 192.168.10.10 192.168.10.20; | // 分配地址的范围 |
4 | next-server 192.168.10.1; | // 指定 TFTP服务器地址 |
5 | filename "pxelinux"; | // 指定要下载的引导文件 |
6 | } | // 结束符号 与上面括号相对应 |
3) 启动服务 dhcpd 并设置开机自启动 查看端口号
1 | [root@localhost ~]# systemctl start dhcpd | // 开启 DHCP服务 |
2 | [root@localhost ~]# systemctl enable dhcpd | // 设置 DHCP服务自启动 |
3 | [root@localhost ~]# netstat -anput | grep dhcpd | // 确认 DHCP服务状态 |
步骤五: 配置启动菜单
1) 创建配置目录 并修改
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg | // TFTP 根目录下创建文件 | |
[root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default | // 新建文件 并编辑 | |
default auto | // 系统默认值 auto--默认 | |
prompt 1 | // 交互模式 1--交互 部分需手动操作 | |
label auto | ||
kernel vmlinuz | // 指定 内核文件 | |
append initrd=initrd.img method=ftp://192.168.10.1/yindao | // initrd.img--初始化镜像 method--指定安装源 |
验证PXE网络安装
注意:虚拟机实验中内存要调整为2G以上,否则报错!!
*为客户机安装系统
*调整BIOS设置,以便从网络引导
*自动获取IP地址,并指定RHEL 6安装源
*其余过程与本地安装相同
PXE + kickstart 全自动化装机
基本原理:
kickstart无人值守技术
*创建应答文件,预先定义好各种安装设置
*免去交互设置过程,从而实现全自动化安装
*通过添加%post脚本,完成安装后的各种配置操作
步骤一: 首先需要下载 system-config-kickstart 软件包
1 | [root@localhost ~]# yum -y install system-config-kickstart | // 下载软件包 |
步骤二: 创建应答文件
使用 system-config-kickstart 命令创建应答文件, 会弹出图形配置界面
(1)基本配置
@默认语言:中文简体
@时区:Asia/Shanghai
@root密码:123123
@给root密码加密
@安装后重启
(2)安装方法
@执行全新安装
@ftp:ftp服务器 192.168.10.1
ftp目录:centos
(3)引导装载程序选项:安装新引导装载程序
(4)分区信息:
@ /boot 500MB
@ /home 4GB
@ /swap 2GB
@ / 剩余所有空间
(5)网络配置:
添加网络ens33--dhcp模式
(6)防火墙配置
@ selinux 禁用
@ 禁用防火墙
(7)软件包选择(centos7系统不再提供软件包的选择
然后 文件-保存- /root/ks.cfg
把最小化安装命令编辑到应答文件末尾 即 ks.cfg
末尾添加:
%packages
@^minimal
%end
1) 将应答文件部署在客户机可访问的位置
2) 修改启动菜单文件,调用应答文件
1 | [root@localhost ~]# cp /root/ks.cfg /var/ftp/ks.cfg | // 将应答文件部署在客户机可访问的位置 |
2 | [root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default | // 修改启动菜单 |
3 | default auto | |
4 | prompt 0 | // 交互模式 0--不需要手动安装 全自动化 |
5 | label auto | |
6 | kernel vmlinuz | |
7 | append initrd=initrd.img method=ftp://192.168.10.1/centos ks=ftp://192.168.10.1/ks.cfg | // 添加应答文件路径 |
验证自动安装
*虚拟机环境如果无法获得dhcp的ip,禁用VMware的dhcp服务
*将客户机以PXE方式引导
*之后会自动完成系统安装,并配置好软件仓库
*整个安装过程无需手动干预