目录
前言
RHEV-H在RHEV中作为虚拟机的载体,一个RHEV-M可以最多管理500个RHEV-H。当企业需要部署大规模的虚拟化平台时,需要大量的安装RHEV-H,这时PXE自动安装无疑是一个非常好的选择。当然我们也顺带的做一个安装RHEL6的PXE任务。
软件环境
- 系统
- RHEL 6.4
- 软件
- RHEV 3.2
前提
安装一个RHEL6作为PXE Server,并且做如下两点基本准备:
1. 正常配置静态 IP 地址(192.168.0.4),并根据需要配置网关、DNS、Hostname。 vim /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE="eth0"BOOTPROTO="static"HWADDR="00:0C:29:1D:28:25"NM_CONTROLLED="yes"ONBOOT="yes"TYPE="Ethernet"UUID="e33341c7-6726-4f3d-ba30-173b9ec38420"IPADDR=192.168.0.4GETWARY=192.168.0.4NETMASK=255.255.255.0
- 关闭防火墙及SELinux
service iptables stopchkconfig iptables offsetenforce 0
部署 PXE 环境
使用 yum 安装所需软件
如果是 redhat 付费用户,可以直接使用 redhat 官方 yum 联网安装。非付费用户可以利用 DVD 安装光盘作为 yum 源。利用 DVD 关盘作为 yum 源,方法如下:
1). 将 DVD 光盘放入虚拟机。并卸除默认挂载,将其重新挂载到/mediaumount /dev/cdrom mount /dev/cdrom /media
2). 配置 yum 的配置文件。将 DVD 光盘作为 yum 源。
vim /etc/yum.repos.d/localhost.repo[localhost] name=localhost baseurl=file:///media enabled=1 gpgcheck=0
检测YUM源
yum list
3). 安装应用服务软件
yum install -y dhcp syslinux tftp-server vsftpd
配置 DHCP
DHCP用于分配 IP 地址,以及指定 TFTP 服务器和 PXE 引导文件。
1). 修改 DHCP 主配置文件 vim /etc/dhcp/dhcpd.confsubnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.100 192.168.0.200; next-server 192.168.0.4; filename "pxelinux.0"; }
2). 启动 DHCP 服务,并设置开机启动
service dhcpd start chkconfig dhcpd on
配置 TFTP-Server
1). 修改 xinetd 中涉及 TFTP-Server 的文件
vim /etc/xinetd.d/tftp 将其中的disable = yes
改为disable = no
service tftp{ socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4}
2). 启动 TFTP-Server,并设置开机启动
service xinetd start chkconfig xinetd on
3). 复制内核文件,初始化镜像文件及 PXE 引导文件到 TFTP-Server 的根目录
cp /media/isolinux/* /var/lib/tftpboot/ cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
4). 在 TFTP-Server 的根目录中设置默认启动菜单文
mkdir /var/lib/tftpboot/pxelinux.cfg cd /var/lib/tftpboot/ cp isolinux.cfg pxelinux.cfg/default
配置 vsftpd 服务,用于提供安装系统所需软件包
1). 创建目录,用于存放 DVD 光盘
mkdir /var/ftp/dvd
2). 将 DVD 光盘镜像的内容复制到/var/ftp/dvd 或将 DVD 直接挂载到/var/ftp/dvd
cp -a /media/* /var/ftp/dvd/
或者
··· mount /dev/cdrom /var/ftp/dvd ··· 3). 启动 vsftpd,并设置开机启动service vsftpd start chkconfig vsftpd on
安装 kickstart,并配置自动应答文件
1). 安装 system-config-kickstart
yum install -y system-config-kickstart
2). 运行 kickstart 创建 ks.cfg 文件
system-config-kickstart
在图形化界面配置 ks.cfg 文件。下列截图作为参考:
3). 将配置保存为 ks.cfg,并将 ks.cfg 文件复制到/var/ftp 目录中
修改 pxe 默认菜单启动文件
实现 pxe 无人值守安装
vim /var/lib/tftpboot/pxelinux.cfg/defaultefault linuxprompt 0#timeout 600display boot.msgmenu background splash.jpgmenu title Welcome to Red Hat Enterprise Linux 6.3!menu color border 0 #ffffffff #00000000menu color sel 7 #ffffffff #ff000000menu color title 0 #ffffffff #00000000menu color tabmsg 0 #ffffffff #00000000menu color unsel 0 #ffffffff #00000000menu color hotsel 0 #ff000000 #ffffffffmenu color hotkey 7 #ffffffff #ff000000menu color scrollbar 0 #ffffffff #00000000label linux menu label ^Install or upgrade an existing system menu default kernel vmlinuz append ks=ftp://192.168.0.4/ks.cfg initrd=initrd.img
测试使用 PXE 无人值守安装 RHEL6.4
制作RHEL6和RHEV-H的PXE无人值守文件
使用 RHEV3.2的ISO镜像设置 yum 源
1). 暂时卸载并从虚拟机中弹出原有的 rhel6.4DVD 光盘镜像
umount /dev/cdrom
2). 向虚拟机中插入 rhev3.2 光盘镜像,并将镜像内容复制到/rhev 目录中
mkdir /rhev mount /dev/cdrom /mnt cp -a /mnt/* /rhev
3). 设置 rhev 的 yum 源
vim /etc/yum.repos.d/rhev.repo[rhev] name=rhev baseurl=file:///rhev enabled=1 gpgcheck=0
4). 卸载 rhev3.2 的 iso 镜像,从虚拟机弹出并插入 rhel6.4DVD 镜像,挂载到/media
umount /dev/cdrom
mount /dev/cdrom /media mount /dev/cdrom /var/ftp/dvd/
用 yum 安装 rhev-hypervisor 或从 redhat 官网下载 rhev-H 的 iso 镜像
yum install rhev-hypervisor6*
从 rhev-H 的 ISO 镜像中获取 PXE 安装文件制作脚本,并生成 rhev-H 的 PXE 文件
1). 将 rhev-hypervisor 的 iso 镜像挂载到/mnt 目录
cd /usr/share/rhev-hypervisor mount -o loop rhevh-6.4-20130912.1.el6_4.iso /mnt
2). 复制出 PXE 安装文件制作脚本
cd /mnt/LiveOS cp livecd-iso-to-pxeboot /root
3). 卸载 rhev-hypervisor 光盘镜像,并生成 PXE 安装文件
umount /mnt umount /media cd /root ./livecd-iso-to-pxeboot rhevh-6.4-20130912.1.el6_4.iso
Create the PXEfile Successfully:
#OutputYour pxeboot image is complete.Copy tftpboot/ subdirectory to /tftpboot or a subdirectory of /tftpboot.Set up your DHCP, TFTP and PXE server to serve /tftpboot/.../pxeboot.0Note: The initrd image contains the whole CD ISO and is consequentlyvery large. You will notice when pxebooting that initrd can take along time to download. This is normal behaviour.
mount /dev/cdrom /media
NOTE1:在生成 PXE 安装文件之前要保证当前目录不存在 tftpboot 子目录,否则生成失败。
NOTE2:在生成 PXE 安装文件之前要保证/media 中没有挂载任何光盘,否则可能生成失败。设置 rhevh 的 PXE 服务器
1). 将原有/var/lib/tftpboot 中所有内容暂时移动到/var/lib/tftpboot/backup目录
cd /var/lib/tftpboot mkdir backup mv * backup
2). 将/root/tftpboot 目录中所有内容复制到/var/lib/tftpboot 目录
cp -a /root/tftpboot/* /var/lib/tftpboot/
修改 PXE 默认启动目录文件(选)
将/var/lib/tftpboot/pxelinux.cfg/default 中的
APPEND rootflags=loop initrd=initrd0.img root=live:/rhevh-6.4-20130912.1.el6_4.iso rootfstype=auto ro liveimg check rootflags=ro crashkernel=128M elevator=deadline install quiet rd_NO_LVM max_loop=256 rhgb rd_NO_LUKS rd_NO_MD rd_NO_DM ONERROR LOCALBOOT 0
修改为:
APPEND rootflags=loop initrd=initrd0.img root=live:/rhevh-6.4-20130912.1.el6_4.iso rootfstype=auto ro liveimg check rootflags=ro crashkernel=128M elevator=deadline install xdriver=vesa nomodeset
测试使用 PXE 安装 rhevh
整合PXE目录文件
1). 将/var/lib/tftpboot/a 目录中的所有文件移动回/var/lib/tftpboot/目录
mv /var/lib/tftpboot/a/* /var/lib/tftpboot/
2). 修改 PXE 默认启动目录文件
vim /var/lib/tftpboot/pxelinux.cfg/defaultdefault vesamenu.c32#prompt 1timeout 600display boot.msgmenu background splash.jpgmenu title Welcome to Red Hat Enterprise Linux 6.3!menu color border 0 #ffffffff #00000000menu color sel 7 #ffffffff #ff000000menu color title 0 #ffffffff #00000000menu color tabmsg 0 #ffffffff #00000000menu color unsel 0 #ffffffff #00000000menu color hotsel 0 #ff000000 #ffffffffmenu color hotkey 7 #ffffffff #ff000000menu color scrollbar 0 #ffffffff #00000000label linux menu label ^Install or upgrade an existing system menu default kernel vmlinuz append ks=ftp://192.168.0.4/ks.cfg initrd=initrd.imglabel vesa menu label Install system with ^basic video driver kernel vmlinuz append initrd=initrd.img xdriver=vesa nomodesetlabel rescue menu label ^Rescue installed system kernel vmlinuz append initrd=initrd.img rescuelabel local menu label Boot from ^local drive localboot 0xfffflabel memtest86 menu label ^Memory test kernel memtest append -label rhevh menu label ^rhev-hypervisor KERNEL vmlinuz0 APPEND rootflags=loop initrd=initrd0.img root=live:/rhevh-6.4-20130912.1.el6_4.iso rootfstype=auto ro liveimg check rootflags=ro crashkernel=128M elevator=deadline xdriver=vesa nomodeset storage_init=/dev/sda storage vol=::::: local_boot BOOTIF=eth0 management_server=rhev-m-1.nice.com ip= netmask= gateway= dns= hostname= ntp= adminpw=$1$whFx6uaH$eH5DLoacPhnF41FPfsnhJ0
注释:
storage_init=/dev/sda #将 rhevh 安装到哪个硬盘 BOOTIF=eth0 #启动网卡名称 management_server=rhev-m-1.nice.com #rhevm 的 FQDN 名 ip= #rhevh 的 ip 地址,无法分配的空 netmask= #rhevh 的子网掩码 gateway= #rhevh 的默认网关 dns=192.168.1.10 #rhevh 的 DNS 服务器 hostname= #rhevh 的 FQDN ntp=192.168.1.10 #rhevh 的 NTP 服务器 adminpw=$1$Y03POPQr$/dzCyeKie/zZG0MucLRuV. #admin 用户的密码 注:adminpw 的密码由 openssl passwd -1 命令产生。
最后
在同一网段中使用PXE装机测试
可以看见rhev-hypervisor
选项表示PXE服务器搭建成功。 :-)