网络装机的优势
规模化:同时装配多台主机
自动化:装系统,配置各种服务
远程实现:不需要光盘,U盘等物理安装介质
PXE Pre-boot eXecution Environment
域启动执行环境,在操作系统之前运行
可用于远程安装
工作模式
PXE client 集成在网卡的启动芯片中
当计算机引导时,从网卡芯片中把PXE client 调入内存
执行,获取PXE server配置,显示菜单,根据用户选择将远程引导程序下载到本机运行
需要服务
DHCP服务,分配IP地址,定位引导程序
TFTP服务,提供引导程序下载
HTTP服务(或FTP/NFS),提供yum安装源
PXE网络装机服务器部署
环境准备
配置PXE服务的ip地址 为 192.168.4.7
为了方便实验 关闭防火强 和 SELinux
一、构建DHCP服务,指定下一个服务器的IP地址
[root@svr7 ~]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.100 192.168.4.200;
option domain-name-servers 192.168.4.7;
option routers 192.168.4.254;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.4.7; #指定下一个服务器IP地址
filename "pxelinux.0"; #指定网卡引导文件
}
pxelinux,0(网卡引导文件):安装说明书,二进制文件
安装一个软件,生成pxelinux.0
[root@svr7 ~]# systemctl restart dhcpd
二.搭建TFTP服务
TFTP:简单的文件传输协议 端口:69
服务端程序:tftp-server
服务名:tftp
默认共享路径:/var/lib/tftpboot
客户端程序:tftp
1.安装tftp-server
[root@svr7 ~]# yum -y install tftp-server.x86_64
2.启动tftp服务,并设置为开机自启
[root@svr7 ~]# systemctl restart tftp
[root@svr7 ~]# systemctl enable tftp
3.部署pxelinux.0文件
[root@svr7 ~]# yum provides */pxelinux.0 #查询仓库中那一个包产生该文件
...
syslinux-4.05-12.el7.x86_64 : Simple kernel loader which boots from a FAT
: filesystem
...
[root@svr7 ~]# yum -y install syslinux-4.05-12.el7.x86_64
[root@svr7 ~]# rpm -ql syslinux | grep pxelinux.0 #查询软件包,安装清单
/usr/share/syslinux/pxelinux.0
[root@svr7 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@svr7 ~]# ls /var/lib/tftpboot/
pxelinux.0
4.部署default默认的菜单文件
[root@svr7 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@svr7 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg/
[root@svr7 ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@svr7 ~]# chmod 644 /var/lib/tftpboot/pxelinux.cfg/default
[root@svr7 ~]# ls -l /var/lib/tftpboot/pxelinux.cfg/default
-rw-r--r--. 1 root root 3166 11月 16 02:26 /var/lib/tftpboot/pxelinux.cfg/default
5.部署图形的模块 vesamenu.c32
[root@svr7 ~]# cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot/
[root@svr7 ~]# ls /var/lib/tftpboot/
pxelinux.0 pxelinux.cfg vesamenu.c32
6.修改菜单文件 /var/lib/tftpboot/pxelinux.cfg/default
[root@svr7 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
...
11 menu title PXE Server !
...
61 label linux
62 menu label ^Install RHEL7
63 kernel vmlinuz
64 append initrd=initrd.img
...
7.部署启动内核与驱动程序
[root@svr7 ~]# cp /mnt/isolinux/initrd.img /mnt/isolinux/vmlinuz /var/lib/tftpboot/
[root@svr7 ~]# ls /var/lib/tftpboot/
initrd.img pxelinux.0 pxelinux.cfg vesamenu.c32 vmlinuz
扩展 修改背景图片
[root@room1pc32 桌面]# scp -r tupian/ root@192.168.4.7:/
[root@svr7 ~]# cp /tupian/7.jpg /var/lib/tftpboot/
[root@svr7 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
...
menu background 7.jpg
...
三.FTP服务,传输RPM包
1.搭建vsftpd 服务,贡献光盘所以内容
[root@svr7 ~]# yum -y install vsftpd
[root@svr7 ~]# systemctl restart vsftpd
[root@svr7 ~]# systemctl enable vsftpd
[root@svr7 ~]# mkdir /var/ftp/rhel7
[root@svr7 ~]# mount /dev/cdrom /var/ftp/rhel7
四.无人值守安装
1.图形生成应答文件程序:
[root@svr7 /]# yum -y install system-config-kickstart
2.运行图形程序
读取本地Yum仓库信息,要求Yum仓库客户端配置文件,仓库标示development
[root@svr7 /]# system-config-kickstart
1) 基础配置 配置默认语言 , 键盘,时区 ,根密码, 安装后重新引导系统
2)安装方式 配置 执行新安装 安装方式 选择FTP 并在FTP服务器和FTP目录上填写 刚刚FTP的配置
3) 引导安装程序选项 配置安装新引导装载程序
4)分区信息 配置 主引导记录: 清除主引导记录 分区 : 删除所有现存分区 磁盘标签 : 初始化磁盘标签 然后 单击 添加
添加 一个交换分区 大小为1024MB
添加 一个根分区 文件类型为 xfs 大小选择:使用磁盘上全部未剩余空间
5)网络配置 单击 添加网络设备 在网络设备上 填写 eth0
6) 防火墙配置 Linux 安全增强版 配置 禁用
7)软件包选择 根据个人喜好选择 但是 一定要选择 系统 中的 基本
8)预安装脚本 和 安装后脚本 根据个人喜好添加脚本 这里 我在安装后脚本写了一个配置yum源的脚本
9) 在单击 图形界面 左上角 文件 ----> 保存 使用默认文件名 ks.cfg 保存到root下 图形界面的配置就完成了
3.搭建vsftpd服务,共享应答文件
[root@svr7 ~]# ls /root/ks.cfg
/root/ks.cfg
[root@svr7 ~]# cp /root/ks.cfg /var/ftp/
五.通过菜单指定ks.cfg应答文件
[root@svr7 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
...
61 label linux
62 menu label ^Install RHEL7
63 kernel vmlinuz
64 append initrd=initrd.img ks=ftp ://192.168.4.7/ks.cfg
执行网络PXE装机
选择网络引导pxe
其他配置 根据个人喜好配置
配置网络选择 选择和刚刚配置PXE服务在同一个网卡
运行虚拟机
回车 选择 Install RHEL
总结:
DHCP ---> IP地址,next-server,filename
tftp ----> pxelinux.0 ,default
default ----> vesamenu.c32,vmlinuz,initrd.img,ks.cfg
ks.cfg ----> url="ftp://192.168.4.7/rhel7"
原文:http://blog.51cto.com/13558754/2058170