大家好,我是红帽RHCE33期精品班学员,从11月28号拿到备考环境到1月15号拿到RHCE证书,差不多用了1个月半左右。最后顺利拿证,RHCSA300分;RHCE270分。分享下我的经验。
一.备考
1.刚拿到备考环境的时候,就迫不及待想去上手敲,结果发现错误百出,特别是RHCE,第一次敲完RHCE差不多花了4个多小时,边敲边看答案,敲完一遍后,发现根本没什么记忆,就像是机械的抄答案。这样特别没有效率,这样搞了一次后,我转变了策略,先去认真审题,然后去理解答案为什么要这么写,等理解了后,根据自己的理解尝试去notepad++里面去手工敲,然后对照答案去理解去修改,这样比在练习环境中有效率。大概这样练了两天后,去练习环境里上手练,熟练度立马就提上来了,RHCE差不多在2.5小时内就能敲完。多理解多记忆,不要死记硬背。
2.刷题要刷到什么时候去考试呢,我个人理解是要信手拈来,一看到题目就知道要做些什么,哪些地方容易出错。你的每道错题都要自己能找出答案来,知道怎么去定位错误。遇到不会的模块,要会使用ansible-doc,记住常用的模块名,你不会的答案都在ansible-doc里,哈哈哈 。
3.多关注群里其他同学的问题错题,尝试去解答。这样是对你自己所掌握的知识的应用和巩固,在帮别人解决问题的同时,也能加深自己对于知识点的理解。在自己遇到错误的时候,先尝试自己解决,不要一遇到错误就找人帮忙,这不利于对知识的理解和应用。
二.考试
RHCSA考试:进入考场,根据老师的提示填入相应的信息就可以开干了。深呼吸,放松,要相信庚老师 。
当你看到题的一瞬间,就不会紧张了,这些题都是你千锤百炼刷过的,无非就是值稍微有一点不一样,这个时候你要做的就是认真审题,在做题的时候能复制的时候尽量复制,鼠标中键是粘贴。在做题之前,先开启ssh允许root帐户登录,默认是禁止以root帐号登录的。vim /etc/ssh/sshd_config 找到 #PermitRootLogin probihit-passwd,复制该行并粘贴,将前面的#去掉,prohibit-passwd 改成yes , 结果是 PermitRootLogin yes 。然后重启sshd服务 systemctl restart sshd,这样ssh就可以用root登录了,或者你自己创建一个用户,用这个帐号登录到node1,然后用su切换到root帐户。
关于容器题,给一个参考。考的题和老庚的练习环境稍微有一点不一样,Containerfile直接下载就可以了,不用自己去写
**容器第1题:为普通用户siaho构建指定名称的镜像。仓库配置/etc/containers/registries.conf文件已预先设好,考试用户已提前建好(密码与root用户的密码相同)。**
- 使用 https://server1.net1.example.com/materials/1/Containerfile,构建名为watcher的容器镜像
- 请勿对Containerfile文件做任何更改
- 操作参考: 考试的时候用户名貌似是wallah ~~~bash
[siaho@node1 ~]$ mkdir watcher //创建工作目录[siaho@node1 ~]$ cd watcher //进入工作目录
[siaho@node1 watcher]$ wget https://server1.net1.example.com/materials/1/Containerfile //下载配置文件,切勿修改此文件
[siaho@node1 watcher]$ podman build -t watcher . //使用当前目录下的配置文件创建名为watcher的镜像.. ..考试时镜像是process_file
[siaho@node1 watcher]$ podman images //检查镜像列表(要能看到watcher)REPOSITORY TAG IMAGE ID CREATED SIZElocalhost/watcher latest 5aa36a65a1a1 8 minutest ago 412MBregistry.net1.example.com latest dc1f1272aec3 16 minutest ago 390MB
**容器第2题:为普通用户创建一个rootless容器以作为systemd服务,并实现开机自启动。
- 容器名称为ascii2pdf
- 容器使用之前在其他项目中创建的watcher镜像
- 容器仅供现有用户siaho作为systemd服务运行
- 服务名称为container-ascii2pdf
- 系统重新启动后,容器应自动启动,无需任何人工干预
- 本地目录/opt/files附加到容器的/opt/incoming目录
- 本地目录/opt/processed附加到容器的/opt/outgoing目录
如果服务工作正常,则置入/opt/files的任何纯文本文件都将自动转换为PDF文件,并使用相同的文件名置入/opt/outgoing目录 ~~~bash
[root@node1~]# mkdir /opt/{file1,processed}
[root@node1~]# chown siaho:siaho /opt/{file1,processed}
[root@node1~]# ssh siaho@node1 //注意不能su切换,否则启动容器会失败
[siaho@node1 watcher]$ podman run --name ascii2pdf -d -v /opt/files:/opt/incoming:Z -v /opt/processed:/opt/outgoing:Z watcher //启动容器[siaho@node1 watcher]$ podman ps //检查运行了哪些容器
[siaho@node1 watcher]$ mkdir -p ~/.config/systemd/user //创建用户服务配置目录
[siaho@node1 watcher]$ cd ~/.config/systemd/user //进入用户服务配置目录
[siaho@node1 user ]$ podman generate systemd --name ascii2pdf --files --new //生成服务配置文件(使用名为ascii2pdf的容器)/home/siaho/.config/systemd/user/container-ascii2pdf.service
[siaho@node1 user ]$ systemctl --user daemon-reload //更新服务配置
[siaho@node1 user ]$ systemctl --user enable container-logserver.service //设置开机自启动
[siaho@node1 user ]$ exit //退出
—— 重启node1主机后,再次以siaho登录,检查容器运行情况
[siaho@node1 user ]$ podman ps
创建逻辑分区那题,要求20个扩展块,每个扩展块是32M,在分配分区大小 的时候,一定要大于640M,不然有可能创建逻辑卷不成功。
还有道很简单的题需要提一下。在给定的目录下创建一个脚本,该脚本用于查找/usr目录下所以文件并将文件的名字记录/root/myfile文件中(此处文件名我乱写的),文件应满足大小小于10M,且该文件具有setgid特殊权限。 该题很简单,为什么要提呢,是因为考完RHCSA出来,同考场有个哥们说不会做。但我相信咱们庚老师的学员都没有问题。
RHCE考试:一样的,进入考场根据的要求填写完基本信息就可以开始答题了,重要配置信息一定要仔细阅读。 题目都是在练习环境中练习过的,所以不要紧张,用老庚的话说,咱们51CTO出去的,进考场前不用紧张,进考场后更不用紧张了。
第三题是安装集合,其实就是collections那题,只不过正式考试的时候把roles和collections分成了两题来做。
配置 conllections
https://classroom/materials/ //这里给了一个链接,后面给了三个文件名
redhat-insights-1.0.7.tar.gz
community-general-5.5.0.tar.gz
redhat-rhel_system_roles-1.19.3.tar.gz
~~~bash
[admin@control ansible]$ vim collections.yml
---
collections:
- name: https://classroom/materials/redhat-insights-1.0.7.tar.gz
- name: https://classroom/materials/community-general-5.5.0.tar.gz
- name: https://classroom/materials/redhat-rhel_system_roles-1.19.3.tar.gz
[admin@control ansible]$ ansible-galaxy collections install -r collections.yml //安装collections
[admin@control ansible]$ ansible-galaxy collection list //查看是否安装成功 ~~~
关于创建和使用分区题,我们这一回考的是parted,上一次北京考的lvol 题目大概是: playbook运行在balancers上,就是node5那台机子,
在vdb上创建一个1500m的分区,用ext4格式化,立即并挂载在/newpart上;在vdc上创建一个1500的分区,如果空间不足,输出空间不足的提示,并创建800m的分区,用ext4格式化,立即并挂载在/newpart1上,如果vdd不存在则输出 disk not exist .(实际node5上vdb有2G,vdc有1G,vdd不存在)
~~~bash
---
- name:
hosts: balancers
tasks:
- name: parted1500 on vdb
parted:
device: /dev/vdb
number: 1
state: present
part_end: 1500MiB
- name: format1500 on vdb
filesystem:
fstype: ext4
dev: /dev/vdb1
- name: mounted vdb
mount:
path: /newpart
src: /dev/vdb1
fstype: ext4
state: mounted //此处必须用mounted,题目要求立即并挂载,present只是会写fstab,不会立即挂载
- name: fail
fail:
msg: "disk not exist"
when: "'vdd' not in ansible_devices"
ignore_errors: yes
- block:
- name: parted1500 on vdc
parted:
device: /dev/vdc
number: 1
state: present
part_end: 1500MB
rescue:
- name: Output
debug:
msg: "insufficient free space"
- name: parted800 on vdc
parted:
device: /dev/vdc
number: 1
state: present
part_end: 800MB
when: ansible_devices.vdc is defined
always:
- name: gs
setup:
- name: format800 on vdc
filesystem:
fstype: ext4
dev: /dev/vdc1
when: ansible_devices.vdc.partitions.vdc1 is defined
- name: mounted vdc
mount:
path: /newpart1
src: /dev/vdc1
fstype: ext4
state: mounted
when: ansible_devices.vdc.partitions.vdc1 is defined
以上代码仅供参考,不负责任,哈哈哈!!!!。不过这个代码是可以正常跑成功的,就当是提供一个思路。
总之,你只要认真的练习了庚老师的备考,那么通过考试不是问题。
有关于考试的问题可以来群里找我,我还算是比较活跃的。