RHEL7 PXE同时部署多个版本操作系统

在日常企业运维环境中,难免会遇到使用多个Linux操作系统的情况,之前的Kickstart只能安装一种Linux版本的系统,
如果每天都需要安装不同版本的Linux系统的话,怎么办呢?所以下面介绍如何在同一个时刻,使用Kickstart部署不同版本
的Linux操作系统,实验环境同时部署RHEL6,RHEL7,Kickstart用的RHEL7系统;
#配置yum源
vim /etc/yum.repos.d/server.repo
[base]
name=rhel
baseurl=file:///mnt
enabled=1
gpgcheck=0
#挂在光盘
mount /dev/cdrom /mnt
#安装配置DHCP
yum -y install dhcp
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf        #dhcp根据实际环境配置
subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.100 192.168.1.200;
  option domain-name-servers server.example.com;
  option domain-name "8.8.8.8";
  option routers 192.168.1.254;
  option broadcast-address 192.168.1.255;
  next-server 192.168.1.89;
  filename "pxelinux.0";
  default-lease-time 60000;
  max-lease-time 720000;
}

systemctl restart dhcpd.service    #启动dhcp服务
systemctl enable dhcpd.service     #随下次开机自动启动该服务

#安装配置tftp-server syslinux
yum -y install syslinux tftp-server
vim /etc/xinetd.d/tftp
disable=no#将yes修改no
systemctl restart xinetd.service
systemctl enable xinetd.service

#复制多系统启动文件
cd /var/lib/tftpboot
mkdir rhel6 rhel7  #因为是多系统引导安装所以创建两个不同版本的文件夹,存放不同的引导文件
cd rhel7    #rhel7文件夹里面存放rhel7的引导文件,需要手动挂载rhel7系统光盘拷贝引导文件
cp /mnt/isolinux/init.img .  #复制到当前
cp /mnt/isolinux/vmlinuz .
cd ..        #放回上一级目录
cd rhel6    #rhel6文件夹里面存放rhel6的引导文件,需要手动挂载rhel6系统光盘拷贝拷贝文件
cp /mnt/isolinux/init.img .
cp /mnt/isolinux/vmlinuz .
cd ..    #放回上一级目录
mkdir pxelinux.cfg
cd pxelinux.cfg
cp /mnt/isolinux/isolinux.cfg ./default  #随便使用哪个系统版本的引导菜单都可以使用,复制过来修改名称为default做相应修改即可
vim default    #编辑default文件
label rhel7
  kernel rhel7/vmlinuz     #刚才创建了对应系统版本文件夹,所有vmlinuz前面加上rhel7
  append initrd=rhel7/initrd.img inst.ks=nfs:192.168.1.89:/rhel7/ks.cfg    #initrd.img前面同样加上rhel7

label rhel6
  kernel rhel6/vmlinuz
  append initrd=rhel6/initrd.img ks=nfs:192.168.1.89:/rhel6/ks.cfg  #rhel6的ks命令不一样,前面没有inst.
cd ..    #返回上一级目录
vim boot.msg    #创建一个安装提示文件
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++please enter rhel6 and rhel7 install system++++++

#安装配置NFS
yum -y install nfs*    #系统默认没有安装则安装nfs服务
mkdir /rhel6 /rhel7    #创建不同目录存放系统对应版本的安装文件
cd /rhel6
nohup cp -a /mnt/* . &    #挂载rhel6光盘,在后台拷贝系统文件
cd /rhel7
nohup cp -a /mnt/* . &    #挂载rhel7光盘,在后台拷贝系统文件
vim /etc/exports    #nfs共享不同版本系统的文件
/rhel6    192.168.1.0/24(rw,sync)
/rhel7    192.168.1.0/24(rw,sync)
systemctl restart nfs-server.service
systemctl enable nfs-server.service

#配置Kickstart一键安装应答文件
yum -y install system-config-kickstgart
system-config-kickstart    #图形化配置应答文件
也可以使用我下面生成的一键安装应答文件,rhel7.0里面没有图像化的安装包选择可以到/root/anaconda-ks.cfg里面
进行拷贝安装图形化的命令到你自己手动创建的ks.cfg文件末行并保存

#rhel6一键安装文件
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation
nfs --server=192.168.1.89 --dir=/rhel6
# Root password
rootpw --iscrypted $1$W4PTHaJU$Ru3MaEqhSmCqK6KDigdea.
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --enforcing
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone  Africa/Abidjan
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part / --fstype="ext4" --size=20000
part swap --fstype="swap" --size=2048
part /boot --fstype="ext4" --size=1024

%packages
@basic-desktop
@desktop-debugging
@desktop-platform
@fonts
@general-desktop
@graphical-admin-tools
@input-methods
@kde-desktop
@legacy-x
@remote-desktop-clients
@x11

%end

#rhel7一键安装文件
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'# Reboot after installation
reboot
# Root password
rootpw --iscrypted $1$6W4GNGL7$Cta9ZjhDcgJ3OBrd.iNSU1
# System timezone
timezone Africa/Abidjan --isUtc
# System language
lang en_US
# Firewall configuration
firewall --disabled
# Network information
network  --bootproto=dhcp --device=eth0
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --enforcing
# Use NFS installation media
nfs --server=192.168.1.89 --dir=/rhel7
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part / --fstype="xfs" --size=20000
part swap --fstype="swap" --size=4096
part /boot --fstype="xfs" --size=1024

%packages
@base
@core
@desktop-debugging
@dial-up
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@multimedia
@print-client
@x11

%end

#复制生成的一键安装应答文件到不同版本文件夹中
cp ks6.cfg /rhel6    #这是rhel6系统的一键安装应答文件
cp ks7.cfg /rhel7    #这是rhel7系统的一键安装应答文件

#修改SELinux状态
vim /etc/sysconfig/selinux
SELINUX=permissive    #默认的enforcing修改为permissive
setenforce 0    #或者重启系统

#防火墙开放服务和端口号
firewall-cmd --permanent --add-port=111/tcp
firewall-cmd --permanent --add-port=111/udp
firewall-cmd --permanent --add-port=20048/tcp
firewall-cmd --permanent --add-port=20048/udp
firewall-cmd --permanent --add-port=69/udp
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=dhcp
firewall-cmd --reload
#客户端从网络引导做安装测试,在弹出的黑色对话框里面输入rhel6或者rhel7进行安装系统