PXE网络快速自动安装系统,以下实验环境均在RedHat 7.2
配置PXE网络装机服务器,为了避免防火墙与selinux的干扰,改为信任以及宽松模式
1. 将防火墙状态设置为trusted
2.SELinux当前修改为permissive
3.SELinux永久状态修改为permissive
步骤一:构建DHCP服务,使客户端自动获取ip,
1. 服务器添加虚拟磁盘
2. 把光盘挂在在/mnt目录下
mount /dev/cdrom /mnt/
3. 由于该服务器上没有对应的yum仓库,不能安装dhcp所需软件包,所以要配置yum仓库, 增加一个名为rhel7.repo仓库,命令如下
vim /etc/yum.repos.d/rhel7.repo
进入一个空白的文本,按i进入编辑模式,输入如下
[rhel7] 仓库的标识
name=rhel7
baseurl=file:///mnt 光盘挂载的目录
enable=1 1为开机自启动
gpgcheck=0 0为不检查包
按Esc :wq 保存退出
4. 安装dhcpd服务所需要的dhcp包
Yum install –y dhcp
5.
配置文件 /etc/dhcp/dhcpd.conf
[[email protected] /]# vim /etc/dhcp/dhcpd.conf
:r /usr/share/doc/dhcp*/dhcpd.conf.example #读入其他文件(末行模式输入)只留以下内容)
subnet 192.168.4.0 netmask 255.255.255.0 { #分配的网段
range 192.168.4.100 192.168.4.200; #分配的IP地址范围
option domain-name-servers 8.8.8.8; #分配DNS
option routers 192.168.4.254; #分配网关
default-lease-time 600; #IP地址默认租用时间
max-lease-time 7200; #IP地址租用最大时间
next-server 192.168.4.7; #指定下一个服务器IP地址,
filename "pxelinux.0"; 若dhc不是同一台服务器提供,
} 则填的是提供tftp所在服务器ip
#指定网卡引导文件,文件名称
6.起服务 ,开机自启动dhcpd
[[email protected] /]# systemctl restart dhcpd
[[email protected] /]# systemctl enable dhcpd
注:pxelinux.0(网卡引导文件):安装说明书,二进制文件
二、搭建TFTP服务
TFTP:简单的文件传输协议 端口:69
服务端程序:tftp-server 服务名:tftp
默认共享路径: /var/lib/tftpboot
1.安装tftp-server
yum install -y tftp-server
2.启动tftp服务,并设置为开机自起
# systemctl restart tftp
# systemctl enable tftp
3. 部署pxelinux.0文件
# yum provides */pxelinux.0 #查询仓库中哪一个包产生该文件
# yum -y install syslinux #安装提供上续文件的syslinux包
# rpm -ql syslinux #查询软件包,安装清单
# rpm -ql syslinux | grep pxelinux.0 #查看该文件所在的路径
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #复制文件到tftp的默认路径
# ls /var/lib/tftpboot/
4.部署default默认的菜单文件
# mkdir /var/lib/tftpboot/pxelinux.cfg
# mount /dev/cdrom /mnt/
# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #将配 置文件复制到tftp默认路径pxelinux.cfg/下并改名为default
# ls -l /var/lib/tftpboot/pxelinux.cfg/default
# chmod 644 /var/lib/tftpboot/pxelinux.cfg/default #赋予读写权限
# ls -l /var/lib/tftpboot/pxelinux.cfg/default
5.部署 图形的模块 vesamenu.c32
# ls /mnt/isolinux/
# cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot/
# ls /var/lib/tftpboot/
6.修改菜单文件/var/lib/tftpboot/pxelinux.cfg/default
# vim /var/lib/tftpboot/pxelinux.cfg/default
......
11 menu title Redhat7.2 #给菜单文件改名或者默认
61 label linux
62 menu label Install RHEL7
menu default #选择默认的第一启动
63 kernel vmlinuz #内核启动文件
64 append initrd=initrd.img #驱动程序
往下的可以删除
7.部署启动内核与驱动程序
#cp /mnt/isolinux/initrd.img /mnt/isolinux/vmlinuz
# ls /var/lib/tftpboot/
initrd.img pxelinux.cfg vmlinuz pxelinux.0 vesamenu.c32
三、FTP服务,传输RPM包
1..安装vsftpd软件
yum install -y vsftpd
2.搭建vsftpd服务,共享光盘所有内容
[[email protected] /]# mkdir /var/ftp/rhel7
[[email protected] /]# mount /dev/cdrom /var/ftp/rhel7
3.设置vsftpd服务启动,设置为开机自起动
#systemctl restart vsftpd
#systemctl enable vsftpd
4.共享光盘所有内容
# ls /var/ftp/rhel7
# firefox ftp://192.168.4.7/rhel7 #本地通过ftp访问光盘目录
四、无人值守安装,生成应答文件
1.图形生成应答文件程序:system-config-kickstart
#yum install -y system-config-kickstart #安装生成应答文件程序
2.运行图形程序:system-config-kickstart 由于RedHat7的系统bug,在软件包这里读取不成功,这时候需要把/etc/yum.repo.d/rhel7 的仓库标识改为 [development]
(1)仓库标识改为[development]
(2)配置语言、时区、根密码,选择安装后重新引导系统
(3)选择安装方式、以及安装方法(本次是通过ftp安装)
(4.)选择引导装载程序选项
(5)初始化以及按自己的需求添加分区
(6)添加网络设备
(7)把防火墙以及selinux禁止
(8)选择修改完选项。点左上角文件,把该配置文件保存在本地/root 文件名默认为ks.cfg
3.查看服务器本地root下生成的ks.cfg文件
[[email protected] /]# ls /root/ks.cfg
4.搭建vsftpd服务,共享应答文件
[[email protected] /]# cp /root/ks.cfg /var/ftp/
[[email protected] /]# ls /var/ftp/
五、通过菜单指定ks.cfg应答文件
[[email protected] /]# vim /var/lib/tftpboot/pxelinux.cfg/default
label linux
menu label Install RHEL7
kernel vmlinuz
append initrd=initrd.img ks=ftp://192.168.4.7/ks.cfg
label local
menu label Boot from local drive
menu default
localboot 0xffff
六、把需要安装的服务器接线,开机启动就可以自动安装系统