问题
XX学校有多个机房主要用于红帽认证及Linux运维相关课程的教学,针对班级/课程轮换的情况,经常需要为学员机更换操作系统。因此,教学部决定搭建一台集中的PXE装机服务器,为客户机重装系统时,可以通过图形菜单选装 RHEL 6.7 或 CentOS 6.7,并且实现一键无人值守装配(若未选择则从硬盘启动)。另外,要求为客户机自动配好Yum,并且建立一个备用的管理账号zyadm、能够支持NTFS文件系统、部署好Libreoffice办公软件。
为了降低项目实施的难度,本例先将部分难点知识提前练习一下,主要包括:
将PXE启动菜单图形化
创建非 root 的管理员账号
部署 LibreOffice 办公套件
部署 NTFS 支持工具 ntfs-3g
使用createrepo建立Yum仓库数据
方案
PXE图形菜单支持需启用vesamenu.c32模块文件,并准备背景图片,这两个文件都可以由syslinux相关的软件包提供。建议的部署位置如下:
图形支持模块:/TFTP根目录/vesamenu.c32
背景图片文件:/TFTP根目录/splash.jpg
备用管理账号,可以添加一个UID为0(与root的UID相同)的特殊用户,也就具有了root权限。由于Linux默认不允许有重复UID,因此在useradd用户时应添加额外的选项-o来忽略检查。
LibreOffice办公套件,在CentOS6系统光盘中已包括对应的RPM包,但在RHEL6系统中并没有。可以提前下载RPM格式的新版LibreOffice安装包,并将其配置为自定义的Yum仓库,提供给RHEL6客户机安装使用。
实验环境可以沿用前一天的PXE服务器实验,如图-1所示。
图-1
步骤
实现此案例需要按照如下步骤进行。
步骤一:将PXE启动菜单图形化
1)准备图形支持模块vesamenu.c32、背景图片splash.jpg
[root@pxesvr ~]# yum -y install syslinux syslinux-nonlinux
.. ..
[root@pxesvr ~]# cp /usr/share/syslinux/vesamenu.c32 /var/lib/tftpboot/
[root@pxesvr ~]# cd /usr/share/doc/syslinux-*/sample/
[root@pxesvr sample]# cp syslinux_splash.jpg /var/lib/tftpboot/splash.jpg
[root@pxesvr sample]# ls /var/lib/tftpboot/ //确认部署结果
splash.jpg vesamenu.c32 … …
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
2)调整PXE菜单配置
启用vesamenu.c32功能模块,屏蔽prompt提示交互;并且添加menu相关的配置行来指定PXE菜单标题、启动项文件(添加^号表示将其后的字母作为快捷键);如果有多个启动项,直接设置多组label即可。
[root@pxesvr ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32 //启动图形模块
#prompt 1 //屏蔽此行
timeout 300 //等待倒计时(单位:1/10秒)
menu background splash.jpg //指定背景图片
menu title Welcome to PXE Installation Server //菜单标题
label rhel6
menu label Install RH^EL 6.7 (Kickstart) //启动项1,快捷键为e
kernel rhel6/vmlinuz //加载RHEL 6.7 的引导内核
append ks=http://192.168.4.254/pxe/ks-el6.cfg initrd=rhel6/initrd.img
label centos6
menu label Install ^CentOS 6.7 ( Kickstart ) //启动项2,快捷键为c
kernel centos6/vmlinuz //加载CentOS 6.7 的引导内核
append ks=http://192.168.4.254/pxe/ks-cos6.cfg initrd=centos6/initrd.img
label rescue
menu label ^Rescue Installed System
kernel rhel6/vmlinuz
append initrd=rhel6/initrd.img rescue //进入rescue救援模式
label local
menu label Boot From ^Local Drive
menu default //作为默认引导项
localboot 1 //从本地硬盘启动
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
3)从客户机验证PXE选择菜单
在网络内找一台客户机以PXE方式引导,将看到图形可选择的菜单,如图-2所示。
图-2
步骤二:创建备用管理账号
1)创建非root的管理员账号
[root@pxesvr ~]# useradd -u 0 -o zyadm //创建备用管理员账号zyadm
[root@pxesvr ~]# echo 1234567 | passwd --stdin zyadm //设置密码
更改用户 zyadm 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
- 1
- 2
- 3
- 4
2)测试管理员用户是否建立成功
使用su命令切换到zyadm用户,然后查看终端提示串的权限位发现是#(而不是$),再执行id命令可发现自己的UID、GID也都是0,相当于root:
[root@pxesvr ~]# su – zyadm //切换用户zyadm
[root@pxesvr ~]# id //查看当前用户登录信息
uid=0(root) gid=500(zyadm) 组=0(root),500(zyadm)
- 1
- 2
- 3
这说明Linux系统已经把zyadm用户当成是root了,如果root用户忘记了密码,改以用户zyadm登录也能够拥有root权限。
步骤三:部署 Libreoffice 办公套件
1)上传软件包到/opt目录下
[root@pxesvr ~]# ls /opt/LibreOffice_5.0.5_Linux_x86-64_rpm.zip
/opt/LibreOffice_5.0.5_Linux_x86-64_rpm.zip
- 1
- 2
2)解压Libreoffice软件包
[root@pxesvr ~]# cd /opt/
[root@pxesvr opt]# unzip LibreOffice_5.0.5_Linux_x86-64_rpm.zip
[root@pxesvr opt]# ls -F LibreOffice_5.0.5/
langpack_zh-CN/ readmes/ RPMS/ install
- 1
- 2
- 3
- 4
3)安装Libreoffice软件包、中文语言包
[root@pxesvr opt]# rpm -ivh LibreOffice_5.0.5/RPMS/*.rpm
.. ..
[root@pxesvr opt]# rpm -ivh LibreOffice_5.0.5/langpack_zh-CN/RPMS/*.rpm
.. ..
- 1
- 2
- 3
- 4
4)打开Libreoffice软件
在RHEL6的图形桌面环境,通过菜单组“应用程序”–>“办公”可以找到Libreoffice快捷方式,打开其中的Writer程序就可以编辑文档(类似于微软的Word软件),如图-3所示。
图-3
步骤四:部署 NTFS 支持工具 ntfs-3g
1)上传ntfs-3g软件包到/opt目录
[root@pxesvr ~]# ls /opt/ntfs-3g-2015.3.14-2.el6.x86_64.rpm
/opt/ntfs-3g-2015.3.14-2.el6.x86_64.rpm
- 1
- 2
2)安装ntfs-3g软件包
[root@pxesvr ~]# rpm -ivh /opt/ntfs-3g-2015.3.14-2.el6.x86_64.rpm
.. ..
[root@pxesvr ~]# rpm -q ntfs-3g //确认安装结果
ntfs-3g-2015.3.14-2.el6.x86_64
- 1
- 2
- 3
- 4
3)了解ntfs-3g工具的用法
[root@pxesvr zengye]# ntfs-3g --help
.. ..
Usage: ntfs-3g [-o option[,...]] <device|image_file> <mount_point>
.. ..
Example: ntfs-3g /dev/sda1 /mnt/windows
.. ..
- 1
- 2
- 3
- 4
- 5
- 6
步骤五:使用 createrepo 建立yum库数据
1)准备RPM软件库
提取LibreOffice和ntfs-3g软件的RPM安装文件,保存到/var/ftp/other目录下,允许客户端访问。
[root@pxesvr ~]# mkdir /var/ftp/other
[root@pxesvr ~]# cp -rf /opt/ntfs-3g-*.rpm /var/ftp/other/
[root@pxesvr ~]# cp -rf /opt/LibreOffice*/RPMS/.rpm /var/ftp/other
[root@pxesvr ~]# cp -rf /opt/LibreOffice/langpack*/RPMS/*.rpm /var/ftp/other/
- 1
- 2
- 3
- 4
- 5
2)安装createrepo软件包,并用来为/var/ftp/other/目录建立仓库数据
[root@pxesvr ~]# yum -y install createrepo //安装建库工具
[root@pxesvr ~]# createrepo /var/ftp/other/
Spawning worker 0 with 60 pkgs
Workers Finished
Gathering worker results
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@pxesvr ~]# du -sh /var/ftp/other/repodata/ //确认创建结果
156K /var/ftp/other/repodata/
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
3)Yum客户端测试
添加ftp://192.168.4.5/other作为Yum源:
[root@pc205 ~]# vim /etc/yum.repos.d/rhel6.repo
[other-packages]
name=Other Packages
baseurl=ftp://192.168.4.5/other
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
- 1
- 2
- 3
- 4
- 5
- 6
- 7
测试使用yum命令安装libreoffice和ntfs-3g软件:
[root@pc4 ~]# yum repolist //测试yum是否可以使用
other-packages | 2.9 kB 00:00
other-packages/primary_db | 15 kB 00:00
repo id repo name status
other-packages other 53
repolist: 53
[root@pc4 ~]# yum -y install libreoffice5.0* ntfs-3g
… …
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
</div>
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-258a4616f7.css" rel="stylesheet">
</div>