本博主要目的为实现自定义页面自动化安装系统,基于PXE支持的网卡,目前实现环境为VMware虚拟机。所用镜像为CentOS6.9,CentOS7.3及rhel5.4。支持中小规模自动化系统统一安装。
另:如果最近常见到pxe相关博文,多半为本人的同期,还请不要在意内容的重复性。不同人眼中的pxe自动化安装,如此理解吧。
环境准备
1.网络环境:独立网络环境配备
实验中需要配置dhcp服务器,所以多余的网络会和本地dhcp服务器造成冲突。
本人的虚拟机里仅选用了一个独立网卡,同时主机配置静态IP。
2.外部环境:这里主要指防火墙和SElinux,二者会对实验造成影响,所以这里,关掉会省去很多麻烦。
3.安装必要软件包:这里syslinux包里的几个文件是必须的,dhcpd包提供dhcp服务器环境配置,tftp-server是轻文本传输用到的。httpd和ftpd选装一个就OK,主要是我们从网站或ftp服务器上获取数据使用。
yum install httpd dhcp tftp-server syslinux --skip-broken
原理及过程
从网络获取镜像文件,并独立配置安装菜单选项,网络引导。
当某机使用完成后的环境安装系统时,首先网卡启动,然后向本机,即dhcp服务器申请IP。IP获得后,tftp负责文本传输,得到网站上的pxe启动文档等信息,并根据引导文件安装系统。
这里为了简便,dhcp服务器及http网站等均由本机担任。
实现步骤
1.dhcpd文件配置
[root@CentOS7 ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
#上面的第一个文件是模板,第二个是配置文件
[root@CentOS7 ~]# vim /etc/dhcp/dhcpd.conf
#查照此文件中的模板添加下信息,此段信息最好放在原文件中第一个subnet上方。
subnet 192.168.23.0 netmask 255.255.255.0{
range 192.168.23.10 192.168.234.100;
option routes 192.168.23.7;
next-server 192.168.23.7; #此处为本机IP
filename "pxelinux.0"; #pxe启动文档
}
2.开启服务
systemctl enable dhcpd httpd tftp 将服务设为开机启动
systemctl start dhcpd httpd tftp 启动服务
systemctl status dhcpd httpd tftp 查看服务状态
3.挂载镜像文件到http
确保三个镜像都已连接,然后按顺序挂好。不要弄错了。
cd /var/www/html/
mkdir centos{6,7}
mkdir rhel5
echo '- - -' > /sys/class/scsi_host/host2/scan
mount /dev/sr0 /var/www/html/centos7
mount /dev/sr1 /var/www/html/centos6
mount /dev/sr2 /var/www/html/rhel5
也可以把挂载写入/etc/fstab文件。
4.编辑安装引导文件ks.cfg
可以简单编辑root家目录下的anaconda-ks.cfg,然后把三个系统的引导文件复制到本机的/var/html/www/下。并注意此文件权限为644。
centos7的.cfg文件参考如下:
[root@centos7 ~]# cat /var/www/html/ks7.cfg
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
url --url=http://192.168.23.7/centos7
# Use graphical install
#graphical
text
reboot
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=ens33 --onboot=on --ipv6=auto --activate
network --hostname=centos7.magedu.com
# Root password
rootpw --iscrypted $6$/BVcMpadhqgy0l4J$FQ1fqYddKm1zqjxEkXn3XctFXiJ2LLWnVfRPi1u1oF6Wx5ebfKwe.8W0wHfF7oxeqDLJbkJJYTnry7W9o/6KP/
# System services
services --disabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc --nontp
# X Window System configuration information
xconfig --startxonboot
# System bootloader configuration
zerombr
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
# Partition clearing information
clearpart --all --initlabel --drives=sda
# Disk partitioning information
part / --fstype="xfs" --ondisk=sda --size=47683
part /boot --fstype="xfs" --ondisk=sda --size=953
part swap --fstype="swap" --ondisk=sda --size=3814
part /app --fstype="xfs" --ondisk=sda --size=47683
%packages
@base
@core
@dial-up
@fonts
@guest-agents
@network-file-system-client
@networkmanager-submodules
@x11
%end
%addon com_RedHat_kdump --disable --reserve-mb='auto'
%end
%anaconda
pwpolicy root --minlen=6 --minquality=50 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=50 --notstrict --nochanges --notempty
pwpolicy luks --minlen=6 --minquality=50 --notstrict --nochanges --notempty
%end