发文申明
- 本文仅对自己练习 rhce 题目做一个记录,同时纪念自己考试经历。不涉及任何推广或广告。
- 文中题库来源于“淘宝环境”(一般参考朋友都明白指的是哪一套环境,如果确实不知道,可以给我留言,我可以贡献一份。当天去考场的时候,我们在静安考场发现考场使用的练习环境也是“淘宝环境”,不得不说题库还是比较准确的)
- “淘宝环境”前 1-6 题,因为大部分可以直接使用图形化界面答题,避免通篇都是图片,前 1-6 题,只会罗列出关键步骤,具体步骤请参考“淘宝环境”配套提供的教学视频解题。本文将从第 7 题开始详细提供参考解答方案。
关于练题心态
- 刚开始练题的时候,肯定会有很多不熟悉的地方,建议可以针对性的练习,可以先针对自己觉得比较难的题目练习,但一定要切记注意题与题之间的依赖关系。
- 一定要注意,向他人请教解题的方法仅供自己参考,寻找适合自己的方式方法,最为重要!
- 少听一些考生抱怨考场环境之类的,你要相信,只要是你自己练的好,再垃圾的环境,你都能够保证你可以考过。当然你也可以发现,喜欢抱怨的考生自身本来就练的不怎么样。
- CE 练题,一定要让自己达到扫一眼题目就知道该题目的解题步骤这样的境界,先在脑海中思考一下答题步骤,再答题。
- 考试时一条命令敲完之后,强烈建议不要马上就敲回车,再检查一下自己敲的命令,确认无误之后再回车。你要相信排错比你检查要花时间多得多,并且有时候你一旦命令敲错了,可能会导致剩下的题目无法继续下去。比如:分区时,你一不小心分了 4 个主分区,然而你又不会删除分区,这样就直接导致你后面关于分区的题目无法进行。得不偿失!
- 考试做完之后,强烈建议先敲击
sync
命令强制同步数据到硬盘中,然后先关闭 system2 (客户端)再关闭 system1(服务端),开机的时候先开启 system1 (服务端)再开启 system2 (客户端),原因:system1 提供服务,system2 挂载服务,开关机顺序不正确,极大可能性会导致挂载失败! - 另外,挂载 iscsi 网络存储时,一定要注意添加
_netdev
参数,防止因为网络原因,导致挂载失败! - 习武之人,不怕练千万招,就怕一招练千万遍!祝大家考试顺利!
考试背景
考试地点:上海静安考场(上海静安区也就那么一个考场,为避免广告之嫌,具体位置请自己查询,或直接给我留言)
考场环境:系统为 redhat 7.0 64 位,使用 kvm 虚拟机,因此需注意硬盘为/dev/vd*
考试时间:2019 年 9 月 6 日
如果把 RHCE 题库做一个分类,那么我做的分类如下:
- postfix 邮件服务类
- samba 共享服务类
- nfs 共享服务类
- Apache web 服务类
- 脚本类
- iscsi 网络存储类
- MariaDB 数据库类
本人解题整体步骤为:
- 需要安装服务,则优先安装服务
- 如果需要创建文件夹,则优先创建文件夹(并且设置 selinux 上下文)
- 如果需要创建服务账号,则优先创建服务账号
- 写配置文件
- 重启服务,并将服务加入开机启动项
- 设置相应的防火墙(优先使用防火墙中的富规则过滤,因为富规则的优先级最高)
- 简单测试一下
RHCE 考试步骤较多,如果完全靠自己死记硬背,基本上很难通过考试,但是如果能够按照以上的解题步骤来,多半情况下不会忘记步骤,下文我将提供本人的解题步骤,以供各位参考。
淘宝题库
环境说明:
system1.group8.example.com : 172.24.8.11/24 作为服务器
system2.group8.example.com : 172.24.8.12/24 作为客户端
server.group8.example.com 提供了YUM软件仓库,URL是 http://server.group8.example....
system1 和 system2 需要先配置 yum 仓库
system1
和 system2
[root@system1 Desktop]# vim /etc/yum.repos.d/rhce.repo
[root@system1 Desktop]# yum clean all
[root@system1 Desktop]# yum makecache
rhce.repo 文件中内容
[rhce]
name=rhce
baseurl=http://server.group8.example.com/yum
enabled=1
gpgcheck=0
第一题:设定 SELinux
在 system1 和 system2 上要求 SELinux 的工作模式为 enforcing :
1.要求系统重启后依然生效。
参考解题步骤:
system1
和 system2
[root@system1 Desktop]# vim /etc/selinux/config
第二题:配置防火墙
请按下列要求在 system1 和 system2 上设定防火墙系统:
1.允许 group8.example.com 域的客户对 system1 和 system2 进行 ssh 访问。
2.禁止 my133t.org 域的客户对 system1 和 system2 进行 ssh 访问。
3.备注: my133t.org 是在 172.13.8.0/24 网络
参考解题步骤:
system1
和 system2
[root@system1 Desktop]# firewall-config
第三题:自定义用户环境
在系统system1和system2上创建自定义命令为qstat ,要求:
1.此自定义命令将执行以下命令:/bin/ps -Ao pid,tt,user,fname,rsz
2.此命令对系统中的所有用户有效
参考解题步骤:
system1
和 system2
[root@system1 Desktop]# vim /etc/profile
[root@system1 Desktop]# source /etc/profile
[root@system1 Desktop]# qstat
/etc/profile 配置文件中内容
alias qstat='/bin/ps -Ao pid,tt,user,fname,rsz'
第四题:配置端口转发
在系统 system1 设定端口转发,要求:
1.在 172.24.8.0/24 网络中的系统,访问 system1 的本地端口 5423 将被转发到 80
2.此设置必须永久有效
参考解题步骤:
system1
第五题:配置链路聚合
在 system2 和 system1 之间按以下要求设定一个链路:
1.此链路使用接口 eth1 和 eth2
2.此链路在一个接口失效时仍然能工作
3.此链路在 system1 使用下面的地址 172.16.3.40/255.255.255.0
4.此链路在 system2 使用下面的地址 172.16.3.45/255.255.255.0
5.此链路在系统重启之后依然保持正常状态
参考解题步骤:
system1
[root@system1 Desktop]# nm-connection-editor
[root@system1 Desktop]# systemctl restart network
[root@system1 Desktop]# ping 172.16.3.40
[root@system1 Desktop]# ping 172.16.3.45
system2
[root@system2 Desktop]# nm-connection-editor
[root@system2 Desktop]# systemctl restart network
[root@system2 Desktop]# ping 172.16.3.45
[root@system2 Desktop]# ping 172.16.3.40
{"runner":{"name":"activebackup"}}
第六题:配置 IPV6 地址
在考试系统上设定接口 eth0 使用下列 IPV6 地址:
1.system1 上的地址应该是 2003:ac18::305/64
2.system2 上的地址应该是 2003:ac18::30a/64
3.两个系统必须能与网络 2003:ac18/64 内的系统通信
4.地址必须在重启后依然生效
5.两个系统必须保持当前的 IPV4 地址并能通信
参考解题步骤:
system1
[root@system1 Desktop]# nm-connection-editor
[root@system1 Desktop]# systemctl restart network
[root@system1 Desktop]# ping6 2003:ac18::305
[root@system1 Desktop]# ping6 2003:ac18::30a
system2
[root@system2 Desktop]# nm-connection-editor
[root@system2 Desktop]# systemctl restart network
[root@system2 Desktop]# ping6 2003:ac18::30a
[root@system2 Desktop]# ping6 2003:ac18::305
第七题:配置本地邮件服务
在系统 system2 和 system1 上配置邮件服务,要求:
1.这些系统不接受外部发送来的邮件
2.在这些系统上本地发送的任何邮件都会自动路由到 mail.group8.example.com
从这些系统上发送的邮件显示来自于 server.group8.example.com
3.您可以通过发送邮件到本地用户 dave 来测试您的配置,系统 server.group8.example.com 已经配置把此用户的邮件转到URL http://server.group8.example....
参考解题步骤:
system1
和 system2
[root@system1 Desktop]# vim /etc/postfix/main.cf
[root@system1 Desktop]# systemctl restart postfix
[root@system1 Desktop]# systemctl enable postfix
[root@system1 Desktop]# firewall-cmd --permanent --add-service=smtp
[root@system1 Desktop]# firewall-cmd --reload
[root@system1 Desktop]# echo "test content" | mail -s "testobject" dave
[root@system1 Desktop]# curl http://server.group8.example.com/pub/received_mail/8
98 local_transport = error:local (需单独添加)
99 myorigin = server.group8.example.com
314 relayhost = mail.group8.example.com
第八题:通过 SMB 共享目录
在 system1 上配置 SMB 服务 ,要求:
1.您的 SMB 服务器必须是 STAFF 工作组的一个成员
2.共享 /common 目录,共享名必须为 common
3.只有 group8.example.com 域内的客户端可以访问 common 共享
4.common 必须是可以浏览的
5.用户 andy 必须能够读取共享中的内容,如果需要的话,验证密码是 redhat
参考解题步骤:
system1
[root@system1 Desktop]# yum -y install samba samba-client
[root@system1 Desktop]# mkdir /common
[root@system1 Desktop]# chcon -R -t samba_share_t /common
[root@system1 Desktop]# id andy
[root@system1 Desktop]# smbpasswd -a andy
[root@system1 Desktop]# vim /etc/samba/smb.conf
[root@system1 Desktop]# setsebool -P samba_enable_home_dirs on
[root@system1 Desktop]# systemctl restart smb nmb
[root@system1 Desktop]# systemctl enable smb nmb
[root@system1 Desktop]# firewall-config
设置防火墙
[root@system1 Desktop]# firewall-cmd --permanent --add-service=samba
[root@system1 Desktop]# firewall-cmd --permanent --add-service=mountd
[root@system1 Desktop]# firewall-cmd --reload
配置文件填写内容
89 workgroup = STAFF
321 [common]
322 path = /common
323 hosts allow = 172.24.8.
324 browseable = yes
验证:
system2
[root@system2 Desktop]# yum -y install samba-client cifs-utils
[root@system2 Desktop]# smbclient -L //172.24.8.11 -U andy
第九题:配置多用户 SMB 挂载
在 system1 通过 SMB 共享目录 /devops ,并满足下列要求:
1.共享名为 devops
2.共享目录 devops 只能 group8.example.com 域中的客户端使用
3.共享目录 devops 必须可以被浏览
4.用户 silene 必须能以读的方式访问此共享,访问密码是redhat
5.用户 akira 必须能以读写的方式访问此共享,访问密码是redhat
6.此共享永久挂载在 system2.group8.example.com 上的 /mnt/dev 目录,并使用用户 silene 作为认证任何用户,可以通过用户 akira 来临时获取写的权限
参考解题步骤:
system1
[root@system1 Desktop]# ls -ald /devops
[root@system1 Desktop]# mkdir /devops
[root@system1 Desktop]# chmod o+w /devops
[root@system1 Desktop]# chcon -R -t samba_share_t /devops
[root@system1 Desktop]# id silene
[root@system1 Desktop]# smbpasswd -a silene
[root@system1 Desktop]# id akira
[root@system1 Desktop]# smbpasswd -a akira
[root@system1 Desktop]# vim /etc/samba/smb.conf
[root@system1 Desktop]# systemctl restart smb nmb
配置文件填写内容
325 [devops]
326 path = devops
327 hosts allow = 172.24.8.
328 browseable = yes
329 writable = no
330 write list = akira
system2
[root@system2 Desktop]# yum -y install cifs*
[root@system2 Desktop]# smbclient -L //172.24.8.11 -U silene
[root@system2 Desktop]# smbclient -L //172.24.8.12 -U akira
[root@system2 Desktop]# ls -ald /mnt/dev
[root@system2 Desktop]# mkdir -p /mnt/dev
[root@system2 Desktop]# vim /etc/fstab
[root@system2 Desktop]# mount -a
[root@system2 Desktop]# df -hT
/etc/fstab 挂载配置文件中填写内容
//172.24.8.11/devops /mnt/dev cifs defaults,multiuser,username=silene,password=redhat,sec=ntlmssp 0 0
第十题:配置 NFS 服务
在 system1 配置 NFS 服务,要求如下:
1.以只读的方式共享目录 /public ,同时只能被 group8.example.com 域中的系统访问
2.以读写的方式共享目录 /protected ,同时只能被 group8.example.com 域中的系统访问
3.访问 /protected 需要通过 Kerberos 安全加密,您可以使用下面 URL 提供的密钥
http://server.group8.example....
4.目录 /protected 应该包含名为 project 拥有人为 andres 的子目录
5.用户 andres 能以读写方式访问 /protected/project
参考解题步骤:
system1
[root@system1 Desktop]# ls -ald /public
[root@system1 Desktop]# mkdir /public
[root@system1 Desktop]# ls -ald /protected
[root@system1 Desktop]# mkdir -p /protected/project
[root@system1 Desktop]# chown andres /protected/project
[root@system1 Desktop]# ls -ald /protected/project
[root@system1 Desktop]# chcon -R -t public_content_t /public
[root@system1 Desktop]# chcon -R -t public_content_t /protected
[root@system1 Desktop]# wget -O /etc/krb5.keytab http://server.group8.example.com/pub/keytabs/system1.keytab
[root@system1 Desktop]# vim /etc/sysconfig/nfs
[root@system1 Desktop]# vim /etc/exports
[root@system1 Desktop]# systemctl restart nfs-server nfs-secure-server
[root@system1 Desktop]# systemctl enable nfs-server nfs-secure-server
[root@system1 Desktop]# firewall-config
[root@system1 Desktop]# exportfs -r
/etc/sysconfig/nfs 配置文件中填写的内容
13 RPCNFSDARGS="-V 4.2"
/etc/exports 配置文件中填写内容
1 /public 172.24.8.0/24(ro)
2 /protected 172.24.8.0/24(rw,sec=krb5p)
设置防火墙
[root@system1 Desktop]# firewall-cmd --permanent --add-service=nfs
[root@system1 Desktop]# firewall-cmd --permanent --add-service=rpc-bind
[root@system1 Desktop]# firewall-cmd --reload
第十一题:挂载一个 NFS 共享
在 system2 上挂载一个来自 system1.group8.example.com 的 NFS 共享,并符合下列要求:
1./public 挂载在下面的目录上 /mnt/nfsmount
2./protected 挂载在下面的目录上 /mnt/nfssecure 并使用安全的方式,密钥下载 URL 如下:http://server.group8.example....
3.用户 andres 能够在 /mnt/nfssecure/project 上创建文件
4.这些文件系统在系统启动时自动挂载
参考解题步骤:
system2
[root@system2 Desktop]# showmount -e 172.24.8.11
[root@system2 Desktop]# systemctl restart nfs-secure
[root@system2 Desktop]# systemctl enable nfs-secure
[root@system2 Desktop]# ls -ald /mnt/nfsmount
[root@system2 Desktop]# mkdir -p /mnt/nfsmount
[root@system2 Desktop]# ls -ald /mnt/nfssecure
[root@system2 Desktop]# mkdir -p /mnt/nfssecure
[root@system2 Desktop]# wget -O /etc/krb5.keytab http://server.group8.example.com/pub/keytabs/system2.keytab
[root@system2 Desktop]# vim /etc/fstab
[root@system2 Desktop]# mount -a
[root@system2 Desktop]# df -hT
/etc/fstab 挂载配置文件填写的内容
172.24.8.11:/public /mnt/nfsmount nfs defaults 0 0
172.24.8.11:/protected /mnt/nfssecure nfs defaults,sec=krb5p,v4.2 0 0
第十二题:实现一个 web 服务器
在 system1 上配置一个站点 http://system1.group8.example...,然后执行下述步骤:
1.从 http://server.group8.example.... 下载文件,并且将文件重名为 index.html 不要修改此文件的内容
2.将文件 index.html 拷贝到您的 web 服务器的 DocumentRoot 目录下
3.来自于 group8.example.com 域的客户端可以访问此 web 服务
4.来自于 my133t.org 域的客户端拒绝访问此 web 服务
参考解题步骤:
system1
[root@system1 Desktop]# yum -y install httpd
[root@system1 Desktop]# cp /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf /etc/httpd/conf.d/
[root@system1 Desktop]# cd /var/www/html
[root@system1 html]# wget -O index.html http://server.group8.example.com/pub/system1.html
[root@system1 html]# vim /etc/httpd/conf.d/httpd-vhosts.conf
[root@system1 html]# systemctl restart httpd
[root@system1 html]# systemctl enable httpd
[root@system1 html]# firewall-config
/etc/httpd/conf.d/httpd-vhosts.conf 网站配置文件中应该写的内容
DocumentRoot "/var/www/html"
ServerName system1.group8.example.com
第十三题:配置安全 web 服务
为站点 http://system1.group8.example... 配置 TLS 加密:
1.一个已签名证书从 http://server.group8.example.... 获取
2.此证书的密钥从 http://server.group8.example.... 获取
3.此证书的签名授权信息从 http://server.group8.example.... 获取
参考解题步骤:
system1
[root@system1 Desktop]# yum -y install mod_ssl
[root@system1 Desktop]# cd /var/www/html
[root@system1 html]# wget http://server.group8.example.com/pub/tls/certs/system1.crt
[root@system1 html]# wget http://server.group8.example.com/pub/tls/private/system1.key
[root@system1 html]# wget http://server.group8.example.com/pub/tls/certs/ssl-ca.crt
[root@system1 html]# vim /etc/httpd/conf.d/ssl.conf (用于参考的配置文件)
[root@system1 html]# vim /etc/httpd/conf.d/httpd-vhosts.conf
[root@system1 html]# setsebool -P httpd_read_user_content=on
[root@system1 html]# systemctl restart httpd
/etc/httpd/conf.d/httpd-vhosts.conf 网站配置文件中应该写的内容
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLHonorCipherOrder on
DocumentRoot "/var/www/html"
ServerName system1.group8.example.com
SSLCertificateFile /var/www/html/system1.crt
SSLCertificateKeyFile /var/www/html/system1.key
SSLCACertificateFile /var/www/html/ssl-ca.crt
第十四题:配置虚拟主机
在 system1 上扩展您的 web 服务器,为站点 http://www8.group8.example.com 创建一个虚拟主机,然后执行下述步骤:
1.设置 DocumentRoot 为 /var/www/virtual
2.从 http://server.group8.example.... 下载文件重名为 index.html ,不要对文件 index.html 的内容做任何修改
3.将文件 index.html 放到虚拟主机的 DocumentRoot 目录下
4.确保 andy 用户能够在 /var/www/virtual 目录下创建文件
注意:原站点 http://system1.group8.example... 必须仍然能够访问,名称服务器 server.group8.example.com 已经提供对主机名 www8.group8.example.com 的域名解析
参考解题步骤:
system1
[root@system1 Desktop]# mkdir /var/www/virtual
[root@system1 Desktop]# cd /var/www/virtual
[root@system1 virtual]# getfacl /var/www/virtual
[root@system1 virtual]# setfacl -Rm u:andy:rwx /var/www/virtual
[root@system1 virtual]# getfacl /var/www/virtual
[root@system1 virtual]# wget -O index.html http://server.group8.example.com/pub/www8.html
[root@system1 virtual]# vim /etc/httpd/conf.d/httpd-vhosts.conf
[root@system1 virtual]# systemctl restart httpd
/etc/httpd/conf.d/httpd-vhosts.conf 配置文件中填写内容
DocumentRoot "/var/www/virtual"
ServerName www8.group8.example.com
第十五题:配置 web 内容的访问
在您的 system1 上的 web 服务器的 DocumentRoot 目录下,创建一个名为 private 的目录,要求如下:
1.从 http://server.group8.example.... 下载一个文件副本到这个目录,并且重命名为 index.html
2.不要对这个文件的内容做任何修改
3.从 system1 上,任何人都可以浏览 private 的内容,但是从其它系统不能访问这个目录的内容。
参考解题步骤:
system1
[root@system1 virtual]# cd /var/www/html
[root@system1 html]# mkdir private
[root@system1 html]# cd private/
[root@system1 private]# wget -O index.html http://server.group8.example.com/pub/private.html
[root@system1 private]# vim /etc/httpd/conf/httpd.conf (用于参考的配置文件)
[root@system1 private]# vim /etc/httpd/conf.d/httpd-vhosts.conf
[root@system1 private]# systemctl restart httpd
/etc/httpd/conf.d/httpd-vhosts.conf 配置文件中填写内容
AllowOverride none
Require all denied
Require local
第十六题:实现动态 WEB 内容
在 system1 上配置提供动态 web 内容,要求:
1.动态内容由名为 wsgi.group8.example.com 的虚拟主机提供
2.虚拟主机侦听在端口 8909
3.从 http://server.group8.example.... 下载一个脚本,然后放在适当的位置,无论如何不要求修改此文件的内容
4.客户端访问 http://wsgi.group8.example.com:8909/ 时,应该接收到动态生成的 web 页面
5.此 http://wsgi.group8.example.com:8909/ 必须能被 group8.example.com 域内的所有系统访问
参考解题步骤:
system1
[root@system1 private]# cd /var/www/html
[root@system1 html]# yum -y install mod_wsgi
[root@system1 html]# wget http://server.group8.example.com/pub/webinfo.wsgi
[root@system1 html]# vim /etc/httpd/conf.d/httpd-vhosts.conf
[root@system1 html]# semanage port -a -t http_port_t -p tcp 8909
[root@system1 html]# systemctl restart httpd
/etc/httpd/conf.d/httpd-vhosts.conf 配置文件中填写内容
listen 8909
WSGIScriptAlias / /var/www/html/webinfo.wsgi
ServerName wsgi.group8.example.com
第十七题:创建一个脚本
在 system1 上创建一个名为 /root/foo.sh 的脚本,让其提供下列特性:
1.当运行 /root/foo.sh redhat ,输出为 fedora
2.当运行 /root/foo.sh fedora ,输出为 redhat
3.当没有任何参数或者参数不是 redhat 或者 fedora 时,其错误输出产生以下的信息:
/root/foo.sh redhat | fedora
参考解题步骤:
system1
[root@system1 html]# cd ~
[root@system1 ~]# vim /root/foo.sh
[root@system1 ~]# chmod a+x /root/foo.sh
/root/foo.sh 文件中需要填写的内容
case $1 in
redhat)
echo 'fedora'
;;
fedora)
echo 'redhat'
;;
*)
echo '/root/foo.sh redhat | fedora'
;;
esac
第十八题:创建一个添加用户的脚本
在 system1 上创建一个脚本,名为 /root/batchusers ,此脚本能实现为系统 system1 创建本地用户,并且这些用户的用户名来自一个包含用户名列表的文件,同时满足下列要求:
1.此脚本要求提供一个参数,此参数就是包含用户名列表的的文件
2.如果没有提供参数,此脚本应该给出下面的提示信息 Usage: /root/batchusers userfile 然后退出并返回相应的值
3.如果提供一个不存在的文件名,此脚本应该给出下面的提示信息 Input file not found 然后退出并返回相应的值
4.创建的用户登录 shell 为 /bin/false
5.此脚本不需要为用户设置密码
6.您可以从下面的 URL 获取用户名列表作为测试用 http://server.group8.example....
参考解题步骤:
system1
[root@system1 ~]# cd ~
[root@system1 ~]# wget http://server.group8.example.com/pub/userlist
[root@system1 ~]# more userlist
[root@system1 ~]# vim /root/batchusers
[root@system1 ~]# chmod a+x /root/batchusers
/root/batchusers 文件中需要填写的内容
if [ $# -eq 0 ];then
echo 'Usage: /root/batchusers userfile'
exit 1
fi
if [ ! -f $1 ];then
echo 'Input file not found'
exit 1
fi
while read line
do
useradd -s /bin/false $line
done < $1
第十九题:配置 ISCSI 服务端
配置 system1 提供一个 ISCSI 服务 磁盘名为 iqn.2014-08.com.example.group8:system1 ,并符合下列要求:
1.服务端口为 3260
2.使用 iscsi_store 作其后端逻辑卷名称,其大小为 3G
3.此服务只能被 system2.group8.example.com 访问
参考解题步骤:
system1
[root@system1 ~]# yum -y install target*
[root@system1 ~]# ls -ald /dev/sd*
[root@system1 ~]# fdisk /dev/sda
[root@system1 ~]# partprobe
[root@system1 ~]# partprobe
[root@system1 ~]# ls -ald /dev/sd*
[root@system1 ~]# pvcreate /dev/sda3
[root@system1 ~]# vgcreate rhce /dev/sda3
[root@system1 ~]# lvcreate -l 100%VG -n iscsi_store rhce
[root@system1 ~]# lvscan
[root@system1 ~]# targetcli
[root@system1 ~]# systemctl restart target
[root@system1 ~]# systemctl enable target
[root@system1 ~]# firewall-config
targetcli 配置命令如下
/> ls
/> cd /backstores/block
/backstores/block> create disk0 /dev/rhce/iscsi_store
/backstores/block> cd /iscsi
/iscsi> ls
/iscsi> create iqn.2014-08.com.example.group8:system1
/iscsi> ls
/iscsi> cd iqn.2014-08.com.example.group8:system1/tpg1/acls
/iscsi/iqn.20...em1/tpg1/acls> create iqn.2014-08.com.example.group8:system2
/iscsi/iqn.20...em1/tpg1/acls> cd ../luns
/iscsi/iqn.20...em1/tpg1/luns> create /backstores/block/disk0
/iscsi/iqn.20...em1/tpg1/luns> cd ../portals/
/iscsi/iqn.20.../tpg1/portals> create 172.24.8.11 3260
/iscsi/iqn.20.../tpg1/portals> ls
/iscsi/iqn.20.../tpg1/portals> delete 0.0.0.0 3260
/iscsi/iqn.20.../tpg1/portals> create 172.24.8.11 3260
/iscsi/iqn.20.../tpg1/portals> ls
/iscsi/iqn.20.../tpg1/portals> exit
第二十题:配置 iSCISI 的客户端
配置 system2 使其能连接在 system1 上提供的 iqn.2014-08.com.example.group8:system1,并符合以下要求:
1.iSCISI 设备在系统启动的期间自动加载
2.块设备 iSCISI 上包含一个大小为 2100 MiB 的分区,并格式化为 ext4
3.此分区挂载在 /mnt/data 上,同时在系统启动的期间自动挂载
参考解题步骤:
system2
[root@system2 Desktop]# yum -y install iscsi-*
[root@system2 Desktop]# vim /etc/iscsi/initiatorname.iscsi
[root@system2 Desktop]# systemctl restart iscsi iscsid
[root@system2 Desktop]# systemctl enable iscsi iscsid
[root@system2 Desktop]# lsblk
[root@system2 Desktop]# iscsiadm -m discovery -t st -p 172.24.8.11
[root@system2 Desktop]# iscsiadm -m node -T iqn.2014-08.com.example.group8:system1 -l
[root@system2 Desktop]# lsblk
[root@system2 Desktop]# ls -ald /dev/sd*
[root@system2 Desktop]# fdisk /dev/sdb
[root@system2 Desktop]# ls -ald /dev/sd*
[root@system2 Desktop]# mkfs (连续按两次 type 键)
[root@system2 Desktop]# mkfs.ext4 /dev/sdb1
[root@system2 Desktop]# blkid /dev/sdb1
[root@system2 Desktop]# ls -ald /mnt/data
[root@system2 Desktop]# mkdir -p /mnt/data
[root@system2 Desktop]# vim /etc/fstab
[root@system2 Desktop]# mount -a
[root@system2 Desktop]# df -hT
/etc/iscsi/initiatorname.iscsi 配置文件中的内容如下
InitiatorName=iqn.2014-08.com.example.group8:system2
/etc/fstab 挂载配置文件内容如下
UUID="82e0d1be-f690-45e2-8dfc-7aa548df3fff" /mnt/data ext4 defaults,_netdev 0 0
第二十一题:配置一个数据库
在 system1上创建一个 Maria DB 数据库,名为 Contacts,要求:
1.数据库应该包含来自数据库复制的内容,复制文件的URL为 http://server.group8.example.... ,数据库只能被 localhost 访问
2.除了 root 用户,此数据库只能被用户 Mary 查询,此用户密码为 redhat
3.root 用户的数据库密码为 redhat ,同时不允许空密码登录
参考解题步骤:
system1
[root@system1 ~]# yum -y install mariadb mariadb-client mariadb-server
[root@system1 ~]# wget http://server.group8.example.com/pub/users.mdb
[root@system1 ~]# vim /etc/my.cnf
[root@system1 ~]# systemctl restart mariadb
[root@system1 ~]# systemctl enable mariadb
[root@system1 ~]# mysql_secure_installation (交互界面全部选择 y )
[root@system1 ~]# mysql -u root -p
19 skip-networking=1 (请自行添加)
进入 MariaDB 数据库使用的命令如下
MariaDB [(none)]> show databases;
MariaDB [(none)]> create database Contacts;
MariaDB [(none)]> use Contacts;
MariaDB [Contacts]> source users.mdb;
MariaDB [Contacts]> show tables;
MariaDB [Contacts]> grant select on Contacts.* to Mary@'localhost' identified by 'redhat';
MariaDB [Contacts]> exit
第二十一题:数据库查询
在 system1 上使用数据库 Contacts ,并使用相应的 SQL 查询以回答下列问题:
1.密码是 fadora 的人的名字是什么?
2.有多少人的姓名是 John ,同时居住在 Santa Clara ?
直接贴出 sql 语句如下,仅供参考,考试时在这里的变数还是很大的,建议不要死记硬背。
select n.firstname,n.lastname from u_name as n left join u_passwd as p where n.userid = p.uid and p.password = 'fedora';
select count(*) from u_name as n left join u_loc as l where n.userid = l.uid and n.firstname = 'John' and l.location = 'Santa Clara';