操作之前,面要先找一个大的U盘(根据所要配置哪些练习环境而定)制作U盘引导安装工具,我这里准备一个128G的U盘。另外需要从红帽的相关网装上下载如下包:
* RHCIfoundation-RHEL7-*.icmf (manifest file)
* RHEL-7.x-*-Server-x86_64-dvd1.iso (RHEL 7.x DVD)
* foundation-config-7.x-*.rpm (student/instructor RPM)
* foundation0-config-7.x-*.rpm (instructor RPM)
* redhat-survey-7*.rpm (survey RPM)
* rhci-foundation-7.x-*.iso (RHCI CD-ROM ISO)
* rht-usb-7.x-*.py (USB creator script)
* ClassroomSetup-7.x-*.txt (first day instructions)
* ClassPrep-7.x-*.txt (this document)
一、U盘引导安装的制作
1、文件准备
首先找一台LINUX主机,将所有需要安装的程序需要的虚拟机文件、ISO文件、ICMF文件等收集好,并保存到一个目录里,如下:
我将所有的保存在了/content目录下,然后插入U盘(不用挂载),fdisk -l 查看能识别就行。
2、格式化U盘为ext4
通过如下命令格式化U盘为ext4格式:
# partprobe /dev/sdb
# mkfs.ext4 /dev/sdb1
上面这步注意,你U盘显示的分区名是什么就写什么,很多U盘识别的是/dev/sdb4,这里就mkfs.ext4 /dev/sdb4 。
创建/root/.icrm/config.yml 文件,并在该文件里写下如下内容:
---
repository: /root/.icrm/repository
repository:/content
注意,不要忘了上面的横线。
3、rht-usb格式化U盘
使用上面下载的rht-usb的python脚本格式U盘,如下:
[root@foundation0 content]# rht-usb-xxxx.py usbformat /dev/sdb1
后面的XXXX是你下载时对应的版本。执行过程中会有Confirm reformatting /dev/sdb1的提示,按y 确认。
二、环境安装
第一个安装的是RHCI 相关的镜像和配置,还是使用rht-usb.py脚本(这里我将脚本重命名了rht-usb,后面都是这样表示),如下:
# rht-usb usbadd RHCIfoundation-RHEL71-3.r31619-ILT-7-en_US.icmf
其中icmf 是一个配置文件,安装时会通过该文件找到与该课程相关的其他包和文件。该文件可以直接通过vim 等文本查看命令打开,我这里只取该文件的一部分给大家看下:
[root@foundation0 manifests]# pwd
/content/manifests
[root@foundation0 manifests]# more RHCIfoundation-RHEL71-3.r31619-ILT-7-en_US.icmf
---
manifest version: 1
curriculum:
name: RHCIfoundation
release: 3.r31619
description: RHCI foundation Hypervisor Layer Files
technology: RHEL71
modality: [ ILT ]
generation: 7
locale: [ en_US ]
publish date: 2015-06-02 16:05:38-04:00
publisher: rlocke
artifacts:
- filename: rhel-server-7.1-x86_64-dvd.iso
type: content
content type: iso
target directory: rhel7.1/x86_64/isos
final name: rhel7.1/x86_64/dvd
usage: [ classroom ]
checksum: 370662c78e36528bbaf3f2b901c29d6f
- filename: foundation-config-7.1-3.r31619.noarch.rpm
type: content
content type: file
target directory: rhel7.1/x86_64/extras/Packages
usage: [ classroom ]
checksum: 190355331d12cf245e83b90abfcca9a5
……………………省略
写入完成后,我们再以同样的方法通过icmf文件写入其他课程所需要的文件,如下:
# rht-usb usbadd RH442-RHEL70-2.r29766-ILT-7-en_US.icmf
比如下,我这里有以下相关红帽的课程环境,就将如下对应的icmf 全部按上面的方法执行一遍:
redhat-rhci-icmf
所有写完以后,U盘制作就完成了。
三、主机安装部署
在需要安装环境的服务器或pc 插上U盘,选择U盘启动 ---这里实际上也可以能过rhci-foundation-xx.iso文件引导安装的。
foundation0 install
在boot后面,我们输入“ f0 课程代码 回车 ” 就会开始安装该课程的环境。安装过程和redhat os 安装差不多,仅需要时区和分区项做下选择,即可完成安装。
由于上面的安装我们仅仅部署了其中一门课程的环境,要想将U盘上所有课程的环境部署到一台主机上,也可以的,可以在安装完成进入系统后再安装其他课程,如下:
注意,U盘插在主机上后,不要挂载,挂载安装课程时会报错。想要安装哪一门,支接执行rht-usb courseusb 课程代码就行了。
四、rht相关指令
上面我们安装的foundation0即是教师机,也是一台学生机。局域网内的其他主机可以通过pxe安装相应的学生练习机。同时红帽本身为了方便练习、难证等,也提供了一套rht相关的指令,非常方便,如下:
1、rht-verify-f0
该命令可以验证foundation0安装的是否有问题:
[root@foundation0 ~]# rht-verify-f0
Hardware report (compare to Hardware Requirements for course)
CPU Cores: 4 CPU Flags: nx lm vmx ept vpid
Total RAM: 16G Total disk: 968G
Virtualization enabled
Confirm hardware requirements ............. PASS
Test for required hostname ................ PASS
Test for required packages ................ PASS
Slave interfaces of br0: enp3s0 vnet0
Warning: br0 slave (enp3s0) speed detected is 100Mb/s
Warning: None of br0 slaves are GigE
Slave interfaces of br1: vnet1
Confirm current network settings .......... PASS
Test for active services and sockets ...... PASS
Warning: only foundation manifest found
CL220-CF31-1.r30561-ILT-7-en_US.icmf
CL280-OSE21-1.r27797-ILT-7-en_US.icmf
DO280-OSE30-1.r34582-ILT-7-en_US.icmf
RH236-RHSTOR30-4.r34927-ILT-7-en_US.icmf
RH254-RHEL70-2.r31095-ILT-7-en_US.icmf
RH270-RHEL71-1.r30566-ILT-7-en_US.icmf
RH318-RHEV35-1.r31286-ILT-7-en_US.icmf
RH436-RHEL71-2.r34386-ILT-7-en_US.icmf
RH442-RHEL70-2.r29766-ILT-7-en_US.icmf
RHCIfoundation-RHEL71-3.r31619-ILT-7-en_US.icmf
Confirm existence of manifests ............ PASS
keyboard --vckeymap=us --xlayouts='us'
lang en_US.UTF-8
timezone Asia/Shanghai --isUtc
Confirm locale settings ................... PASS
Current local time: Tue Apr 19 22:31:59 CST 2016
Correct as needed the local time .......... PASS
foundation0-ose-3.0-1.r34582.x86_64
foundation0-rhstor-3.0-1.r30734.x86_64
foundation0-rh442-7.0-1.r29766.x86_64
foundation0-atomic-7.1-1.r30566.x86_64
foundation0-rhev-3.5-1.r31286.x86_64
foundation0-rhelha-7.1-1.r34386.x86_64
foundation0-cfme-3.1-1.r30535.x86_64
Test for course packages .................. PASS
RHT_VENUE=ilt
RHT_ENROLLMENT=0
RHT_ROLE=foundation
RHT_COURSE=rh270
RHT_TITLE="Managing Containers with Red Hat Enterprise Linux Atomic Host"
RHT_VMS="workstation servera serverb serverc serverd "
RHT_MAXSTATIONS=20
RHT_VM0="classroom "
RHT_HVMS=""
RHT_VMTREE=atomic7.1/x86_64
Confirm course settings ................... PASS
*** SUMMARY: [PASS=10] [WARNING=2] [FAIL=0] ***
2、rht-setcourse
使用该命令可以方便的在多个环境之间切换,如下:
[root@foundation0 ~]# rht-setcourse rh270
Course set to rh270
上面就将练习环境切到了docker这门课程了。
3、rht-pushcourse
给学习机推送练习环境(实际上就是推送对应的虚拟机)
[root@foundation0 ~]# rht-pushcourse 7
Preparing to push to foundation7.ilt.example.com...
上面是给7号机推送。
4、rht-vmctl
练习时学生机经常可能会把本机的练习环境里的东西搞的不对,可以通过该命令将练习环境重置。
[root@foundation0 ~]# rht-vmctl fullreset servera
[root@foundation0 ~]# rht-vmctl fullreset all
可以重置其中一台,也可以重置所有的。原理说白了就是从教师机上wget qcow2的虚拟机文件,练习环境底层都是基于通过kvm虚拟机的。