2

发文申明

  1. 本文仅对自己练习 rhce 题目做一个记录,同时纪念自己考试经历。不涉及任何推广或广告。
  2. 文中题库来源于“淘宝环境”(一般参考朋友都明白指的是哪一套环境,如果确实不知道,可以给我留言,我可以贡献一份。当天去考场的时候,我们在静安考场发现考场使用的练习环境也是“淘宝环境”,不得不说题库还是比较准确的)
  3. “淘宝环境”前 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 数据库类

本人解题整体步骤为:

  1. 需要安装服务,则优先安装服务
  2. 如果需要创建文件夹,则优先创建文件夹(并且设置 selinux 上下文)
  3. 如果需要创建服务账号,则优先创建服务账号
  4. 写配置文件
  5. 重启服务,并将服务加入开机启动项
  6. 设置相应的防火墙(优先使用防火墙中的富规则过滤,因为富规则的优先级最高)
  7. 简单测试一下

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.com/yum
  • system1 和 system2 需要先配置 yum 仓库

    system1system2

    [root@system1 Desktop]# vim /etc/yum.repos.d/rhce.repo
    [root@system1 Desktop]# yum clean all
    [root@system1 Desktop]# yum makecache

    image.png

rhce.repo 文件中内容

[rhce]
name=rhce
baseurl=http://server.group8.example.com/yum
enabled=1
gpgcheck=0

image.png


  • 第一题:设定 SELinux

    在 system1 和 system2 上要求 SELinux 的工作模式为 enforcing :
    1.要求系统重启后依然生效。

参考解题步骤:

system1system2

[root@system1 Desktop]# vim /etc/selinux/config 

image.png


  • 第二题:配置防火墙

    请按下列要求在 system1 和 system2 上设定防火墙系统:
    1.允许 group8.example.com 域的客户对 system1 和 system2 进行 ssh 访问。
    2.禁止 my133t.org 域的客户对 system1 和 system2 进行 ssh 访问。
    3.备注: my133t.org 是在 172.13.8.0/24 网络

参考解题步骤:

system1system2

[root@system1 Desktop]# firewall-config

image.png


  • 第三题:自定义用户环境

    在系统system1和system2上创建自定义命令为qstat ,要求:
    1.此自定义命令将执行以下命令:/bin/ps -Ao pid,tt,user,fname,rsz
    2.此命令对系统中的所有用户有效

参考解题步骤:

system1system2

[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'

image.png


  • 第四题:配置端口转发

    在系统 system1 设定端口转发,要求:
    1.在 172.24.8.0/24 网络中的系统,访问 system1 的本地端口 5423 将被转发到 80
    2.此设置必须永久有效

参考解题步骤:

system1

image.png

image.png

image.png


  • 第五题:配置链路聚合

    在 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

image.png

image.png

system2

image.png

[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

image.png

image.png

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

image.png


  • 第七题:配置本地邮件服务

    在系统 system2 和 system1 上配置邮件服务,要求:
    1.这些系统不接受外部发送来的邮件
    2.在这些系统上本地发送的任何邮件都会自动路由到 mail.group8.example.com
    从这些系统上发送的邮件显示来自于 server.group8.example.com
    3.您可以通过发送邮件到本地用户 dave 来测试您的配置,系统 server.group8.example.com 已经配置把此用户的邮件转到URL http://server.group8.example.com/pub/received_mail/8

参考解题步骤:

system1system2

[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

image.png

image.png

image.png

  • 第八题:通过 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

image.png

image.png

image.png

image.png

验证:

system2

[root@system2 Desktop]# yum -y install samba-client cifs-utils
[root@system2 Desktop]# smbclient -L //172.24.8.11 -U andy

image.png


  • 第九题:配置多用户 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

image.png

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

image.png

image.png


  • 第十题:配置 NFS 服务

    在 system1 配置 NFS 服务,要求如下:
    1.以只读的方式共享目录 /public ,同时只能被 group8.example.com 域中的系统访问
    2.以读写的方式共享目录 /protected ,同时只能被 group8.example.com 域中的系统访问
    3.访问 /protected 需要通过 Kerberos 安全加密,您可以使用下面 URL 提供的密钥
    http://server.group8.example.com/pub/keytabs/system1.keytab
    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"

image.png

/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.com/pub/keytabs/system2.keytab
    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

image.png


  • 第十二题:实现一个 web 服务器

    在 system1 上配置一个站点 http://system1.group8.example.com/,然后执行下述步骤:
    1.从 http://server.group8.example.com/pub/system1.html 下载文件,并且将文件重名为 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

image.png

/etc/httpd/conf.d/httpd-vhosts.conf 网站配置文件中应该写的内容

<VirtualHost *:80>
    DocumentRoot "/var/www/html"
    ServerName system1.group8.example.com
</VirtualHost>

image.png

image.png

image.png


参考解题步骤:

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 网站配置文件中应该写的内容

<VirtualHost *:443>
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
</VirtualHost>

/etc/httpd/conf.d/ssl.conf 参考的配置文件

/etc/httpd/conf.d/ssl.conf 参考的配置文件

image.png


  • 第十四题:配置虚拟主机

    在 system1 上扩展您的 web 服务器,为站点 http://www8.group8.example.com 创建一个虚拟主机,然后执行下述步骤:
    1.设置 DocumentRoot 为 /var/www/virtual
    2.从 http://server.group8.example.com/pub/www8.html 下载文件重名为 index.html ,不要对文件 index.html 的内容做任何修改
    3.将文件 index.html 放到虚拟主机的 DocumentRoot 目录下
    4.确保 andy 用户能够在 /var/www/virtual 目录下创建文件

注意:原站点 http://system1.group8.example.com 必须仍然能够访问,名称服务器 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 配置文件中填写内容

<VirtualHost *:80>
    DocumentRoot "/var/www/virtual"
    ServerName www8.group8.example.com
</VirtualHost>

image.png


  • 第十五题:配置 web 内容的访问

    在您的 system1 上的 web 服务器的 DocumentRoot 目录下,创建一个名为 private 的目录,要求如下:
    1.从 http://server.group8.example.com/pub/private.html 下载一个文件副本到这个目录,并且重命名为 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 配置文件中填写内容

<Directory "/var/www/html/private">
    AllowOverride none
    Require all denied
    Require local
</Directory>

image.png

image.png


参考解题步骤:

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
<VirtualHost *:8909>
    WSGIScriptAlias / /var/www/html/webinfo.wsgi
    ServerName wsgi.group8.example.com
</VirtualHost>

image.png

image.png


  • 第十七题:创建一个脚本

    在 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

image.png


  • 第十八题:创建一个添加用户的脚本

    在 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.com/pub/userlist

参考解题步骤:

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

image.png

image.png

image.png

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

image.png


  • 第二十题:配置 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

image.png

image.png

image.png


  • 第二十一题:配置一个数据库

    在 system1上创建一个 Maria DB 数据库,名为 Contacts,要求:
    1.数据库应该包含来自数据库复制的内容,复制文件的URL为 http://server.group8.example.com/pub/users.mdb ,数据库只能被 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    (请自行添加)

image.png

进入 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';

左诗右码
85 声望11 粉丝

三观比五官更正,思想比套路更深。常用技术栈PHP、Go、Python,享受编程,平时爱好写点文章。V公主号:「左诗右码」,欢迎关注交流。