简介:面向备考RHCSA与RHCE认证的Linux学员,这份PDF文档系统梳理了Red Hat Enterprise Linux 8.0环境下RH134与RH294两套实验环境的完整使用指南。RH134对应RHCSA官方模拟培训环境,重点说明虚拟机约需30GB硬盘和6GB内存,foundation作为物理机可使用rht-vmctl命令管理虚拟主机,workstation用于执行lab命令,servera/serverb为SSH服务器,bastion则提供yum仓库、文件服务和路由;同时给出默认账户密码,以及用rht-vmctl start all开启全部虚拟机、用virt-manager从控制台登录排障的方法。RH294对应RHCE考试环境,资源需求提升至约60GB硬盘和8GB内存,除四台被控端服务器外,bastion还可作为控制端,并特别介绍了初始化、RHCSA、RHCE三个快照的使用场景,便于恢复练习环境;模拟考试时通过kiosk账户登录后,可用exam-setup初始化,再以exam-grade自动评分。资源共1个PDF文件,大小仅398KB,内容精炼,适合快速查阅;目前已有290人学习下载,是搭建实验环境或备考冲刺的实用参考。
1. 这门考试先考环境,再考技术:RH134与RH294到底在考什么
备考RHCSA和RHCE的同学,最容易踩的第一个坑不是命令没记住,而是考场环境根本没搞熟。RH134对应RHCSA 8.0认证,RH294对应RHCE 8.0认证,两套模拟考试环境来自同一套虚拟机架构:foundation是物理机,workstation是操作平台,servera/serverb(RH294再加入serverc/serverd)是服务器和被测端,bastion负责提供yum仓库、路由和考试所需文件。考试能不能过,很大程度取决于你是否熟悉这套环境怎么启动、怎么回滚、怎么评分。换句话说,这门考试先考环境操作,再考Linux技术,很多人把精力全投在命令上,结果连rht-vmctl start all、exam-setup、exam-grade这些最基本的考场操作都没练熟,还没开始答题就先翻车了。
RH294环境比RH134多占30G硬盘和2G内存,还多了三个快照:初始化、RHCSA、RHCE,分别对应不同练习阶段。模拟考试时登录账号是kiosk,密码是redhat,然后执行exam-setup初始化,最后用exam-grade评分。这套流程是考前的第一关,本文就按考点分布、高频考点、真题答题思路到易错题复盘这条主线,把RH134和RH294环境里的必考点和拿分套路全部拆开讲。适合正在备考RHCSA或RHCE、尤其是有一定Linux基础但没练过模拟环境的人,读完能直接上机照做。
2. 考点分布与分值逻辑:RHCSA和RHCE分别考什么、各占多少分
2.1 RHCSA(RH134)的考点模块与分值占比
RHCSA 8.0考试通常包含20题左右,每题分值不同,总分300分,210分及格。题目覆盖系统管理、存储配置、安全管理、网络管理等模块。从历年真题和模拟题库来看,高频考点集中在用户与组管理(约15%)、文件权限与SELinux(约15%)、存储管理与LVM(约20%)、网络配置与防火墙(约15%)、进程与服务管理(约10%)、计划任务与日志(约10%)、系统启动与内核(约10%)、其他杂项(约5%)。其中LVM和SELinux是多数考生的失分重灾区,原因不是不会命令,而是不会在考试环境里验证。
这套RH134模拟环境里,workstation支持lab命令,可以快速重置某道题的初始状态。比如你做完用户创建的题,想再练一遍,在workstation上执行对应的lab reset指令就能把环境还原。servera和serverb就是你的“考试机”,所有配置最终落在它们上面,bastion只是网关,不承担答题任务。记住这个关系,你就明白为什么很多人在servera上配好了服务,评分却不过——因为题目要求写在serverb上,你写错了主机。
2.2 RHCE(RH294)的考点模块与分值占比
RHCE 8.0考试全称是“Red Hat Certified Engineer”,但考的内容却是Ansible自动化。考试时间4小时,总分300分,210分及格,题目数量通常在20-25题之间,全部围绕Ansible展开:Inventory配置、Playbook编写、Role的使用、变量的定义与优先级、Handler与Notify机制、条件与循环、模板渲染、文件与服务模块、系统角色、Ansible Vault加密等。其中Playbook编写和Role的运用是最核心的两大块,合计分值占比超过50%。
RH294环境在RH134基础上多了serverc和serverd两台被控端,bastion也升级为控制端,这意味着你可以从bastion或者workstation上执行ansible命令去管理四台服务器。环境带的三个快照——初始化、RHCSA、RHCE——分别对应不同练习场景:初始化快照用于恢复干净的初始状态(比如环境被你搞崩了),RHCSA快照用于练系统管理题,RHCE快照用于练Ansible题。切换快照不是重新装系统,而是把整个虚拟机群回滚到某个时间点的状态,这个机制就是你的“后悔药”,做错了或者环境坏了,切回快照再练就行。
2.3 环境分值背后的时间分配策略
4小时考20多题,平均每题不到10分钟,但实际答题时LVM和Playbook这种大题可能要花20分钟以上。所以时间分配不能平均主义:RHCSA要把时间重点压在存储和SELinux上,RHCE要把时间重点压在Playbook和Role上。考试时建议先扫一遍题目,把会的题先做完拿保底分,再回头抠难题。模拟环境的exam-grade评分系统会在你执行后给出得分反馈,但注意它只告诉你有多少分,不告诉你错在哪,所以平时练习就要养成分步验证的习惯,别指望考场上有debug的时间。
提示:RHCSA和RHCE是两个独立的考试,各4小时,各300分,都要求210分及格。通过了RHCSA才能考RHCE,但备考时完全可以两套环境一起练,因为RHCSA的系统管理技能是RHCE里Ansible管理节点的基础。
3. 高频考点:RH134环境下的五类必考题与答题模板
3.1 用户与组管理:usermod和chage的完整用法
RHCSA考试里几乎必考创建用户、设置密码、把用户加入附加组、设置账户有效期。基础命令大家都会,但容易栽在细节上:创建用户时要求指定UID,要用useradd -u 1201;要求账户密码有效期是90天,要用chage -M 90;要求把用户加入多个附加组,要用usermod -aG group1,group2,不加-a就是覆盖不是追加,这是经典失分点。
服务器servera上通常考试时会有一个预设用户,题目让你修改它的属性。如果你从头create一个新用户,就等于没做对。答题前先id 用户名和chage -l 用户名检查现状,答题后再用getent passwd 用户名和getent group 组名验证,这是这类题的标准动作。在RH134环境里,验证命令不受限制,所以你完全可以在考试时用这些命令确认自己是否写对了。
3.2 文件权限、ACL与SELinux:三件套一起考,别只顾chmod
文件权限题在RHCSA里从来不是单独考的,它通常会和SELinux、ACL捆绑在一起。典型的题目组合是:创建目录,设置属组为某组,目录权限为2770(带setgid),然后在该目录下创建的文件要求自动继承属组,同时要求对某个用户设置ACL权限,最后还要确保SELinux上下文正确。
这类题的答题模板是:先用groupadd建组,用chown改属主属组,chmod 2770设权限,用setfacl -m u:用户名:权限加ACL,然后检查SELinux。RH134环境里SELinux默认是Enforcing模式,如果你用getenforce看到不是Enforcing,说明环境被改过,要先恢复。SELinux相关的题目高频考的是chcon和restorecon,以及semanage fcontext。要记住:chcon是临时改上下文,restorecon是按照策略恢复,semanage fcontext才是持久化配置,三者的区别就是考试陷阱。
3.3 存储管理与LVM:卷组扩展和文件系统挂载的最优解
存储题在RHCSA里的分值权重最高,考点包括:创建分区或使用现成磁盘做LVM、创建卷组、创建逻辑卷、格式化并挂载、配置开机自动挂载。答题步骤有标准套路:先用lsblk查看可用磁盘,用pvcreate建物理卷,vgcreate建卷组,lvcreate建逻辑卷,mkfs.xfs格式化,最后写/etc/fstab并用mount -a验证。
考试里最深的坑是fstab写错导致系统无法启动,这类题通常这样避免:把挂载写的UUID而不是写设备名,因为设备名可能会变。用blkid查看UUID,写入fstab后再执行mount -a,然后df -h验证。另一个高频陷阱是逻辑卷扩容:题目让你把逻辑卷从2G扩到5G,你要先检查卷组里有没有足够空间,没有就先扩卷组,再lvextend -L 5G,最后记得xfs_growfs(xfs文件系统不能用resize2fs,那是ext系列的命令),忘记最后一步等于白扩。
3.4 网络配置与防火墙:nmcli和firewall-cmd的组合用法
RHCSA考网络题时通常要求在servera上配置静态IP、子网掩码、网关和DNS。现在RHEL 8.0里推荐用nmcli,不要再用system-config-network或者直接改配置文件。答题模板是:nmcli con mod ens3 ipv4.addresses 192.168.x.x/24,ipv4.gateway设置网关,ipv4.dns设置DNS,ipv4.method manual改成手动,然后用nmcli con up ens3激活。
防火墙题通常要求放行某个端口或服务,用firewall-cmd --permanent --add-service=http或者--add-port=8080/tcp,最后必须firewall-cmd --reload。很多人只配了--permanent忘了reload,规则没生效,评分直接扣分。验证用firewall-cmd --list-all。要注意的是,RH134环境的bastion提供yum仓库,如果你的servera网络配错了,yum装不了包,后续很多题都做不了,所以网络题要放在考试前期优先完成并验证。
3.5 计划任务与日志:crontab和rsyslog的失分点复盘
计划任务必考,但考试不考复杂的脚本,而是考最基本的:为某个用户创建cron任务,每隔多少分钟执行某个命令。答题模板是crontab -u 用户名 -e,格式是分 时 日 月 周 + 命令。容易错的是时间字段顺序:5个字段分别是分钟、小时、日期、月份、星期,不是反过来。另一点常用到的是,cron任务如果写在/etc/cron.d/下,格式要带用户名字段,写在用户自己的crontab里则不用。
日志题考试频率不高,但rsyslog配置偶尔会出现。让你把某个服务的日志重定向到指定文件,做法是在/etc/rsyslog.d/下新建配置文件,写入类似authpriv.* /var/log/secure_custom的规则,然后systemctl restart rsyslog。这类题的验证是查看目标文件是否生成,以及日志内容是否来自指定设施。实际练习中很多同学把rsyslog.d里的配置文件名写错(必须以.conf结尾),导致整个目录的配置被忽略,这个点要特别留意。
4. 高频考点:RH294环境下的Ansible必考题与答题模板
4.1 Inventory配置:静态inventory和主机变量的考点
RHCE考试里Inventory是基础题,通常要求你在指定路径创建inventory文件,定义控制节点和被管节点,还要给某些主机设置主机变量。标准答法是在/home/student/ansible/inventory里定义:
[control] bastion.example.com [managed] servera.example.com serverb.example.com serverc.example.com serverd.example.com [managed:vars] ansible_user=student ansible_ssh_private_key_file=/home/student/.ssh/id_rsa这里的managed:vars用来批量给组内所有主机设置变量,省得一台台写。变量名的拼写是关键:ansible_ssh_private_key_file是RHEL 8的实际参数,有些同学记成ansible_ssh_private_key就会连接失败。考试里还可能要求你通过变量让某些主机使用不同的连接用户,上面这段配置把用户名统一设为student,如果题目要求部分主机用root连接,就要单独写在主机变量里,而不是写在:vars里。
写完inventory后测试连通性,命令行是ansible managed -m ping -i /home/student/ansible/inventory。RH294环境里如果报权限错误,先检查私钥文件的权限是否是600,chmod 600修一下。这个步骤看似简单,但很多人因为跳过了连通性测试,导致后面所有playbook都在报错,白白浪费半小时排错。
4.2 Playbook编写:从YAML语法到任务状态的完整练习
Playbook是RHCE的重头戏,题型包括安装软件包、启动服务、创建用户、复制文件、修改配置等,但每道题都用Ansible的模块完成。最常考的模块是dnf、service、user、copy、template、lineinfile、firewalld和selinux。一份高分的Playbook长这样:
--- - name: Install and configure httpd hosts: servera become: true tasks: - name: Install httpd dnf: name: httpd state: latest - name: Start and enable httpd service: name: httpd state: started enabled: true - name: Configure firewall firewalld: service: http state: enabled permanent: true immediate: true这段Playbook考察三个得分点:包安装、服务启动与开机自启、防火墙放行。很多同学漏写become: true,因为被管主机上的student用户没有root权限,dnf安装直接失败。还有immediate: true这个参数,它表示立即生效而不只是写入永久配置,考试环境里如果漏了它,服务虽然配置好了,但当前防火墙会话没放行,评分工具连接不上,照样扣分。
Playbook的验证方式是ansible-playbook -i inventory playbook.yml,执行时观察输出里的ok、changed和failed。如果出现failed,检查报错信息,不要盲目重跑。值得留意的是,考题里可能要求写多个Play(一个Playbook包含多个hosts块),比如第一个Play配置servera,第二个Play配置serverb,这时候注意不要漏写任何一个Play,否则就是整道题白做。
4.3 Role与Ansible Galaxy:roles目录结构是必背项
RHCE要求会用Role来组织Playbook,考题通常让你创建名为apache(或类似名字)的角色,然后在Playbook里通过roles:关键字引用。Role的目录结构必须和标准一致:
roles/apache/ ├── tasks/ │ └── main.yml ├── handlers/ │ └── main.yml ├── templates/ ├── files/ ├── vars/ │ └── main.yml ├── defaults/ │ └── main.yml └── meta/ └── main.yml考试里创建Role的命令是ansible-galaxy init roles/apache,它会自动生成上面这套骨架。tasks/main.yml里写实际任务,handlers/main.yml里写需要被通知的处理动作,templates目录放模板文件。这套目录结构本身是考点,如果你手工创建漏了目录,Ansible运行时会报找不到role。
Role的引用有两种方式,一种是Playbook里写roles:,另一种是写include_role。考试场景下用roles:最简单,写法是:
- name: Apply apache role hosts: serverb become: true roles: - apache这个写法的好处是结构清晰,评分工具按目录找文件,不容易出错。练习时最容易错的是:ansible-galaxy init生成的tasks/main.yml里是空的,你要自己往里写任务,很多人习惯性地把任务写到Playbook里而忘了改tasks文件。在RH294的评分机制里,它检查的是roles/apache/tasks/main.yml这个文件,你写在Playbook里再工整也拿不到分。
4.4 变量、事实与模板渲染:{{ }}里的学问
Ansible变量题常考自定义变量和事实变量的使用。远程主机的系统信息通过ansible_facts获取,比如ansible_facts['eth0']['ipv4']['address']就是获取某网卡的IP。模板渲染题要求你创建一个.j2模板文件,里面用{{ }}引用变量,生成的目标文件里要包含这些变量的值。答题模板是:
ServerName {{ httpd_server_name }} Listen {{ httpd_port }}对应在Playbook里要先用template模块把模板渲染到目标路径,同时确保模板文件在roles/apache/templates/目录下。一个易错点是变量命名:考题里给了变量名就必须用,不能自己再起一个新名字,否则模板渲染出来就是空的。另一个坑是变量有默认值时,要将它放进defaults/main.yml,不要放在vars/main.yml——前者优先级低,可以被覆盖,后者优先级高,会覆盖playbook层的同名变量。考试题里通常不会直接说“请你用defaults”,但考的就是这个优先级机制,你得根据题目上下文判断变量应放在哪层。
5. 易错点:RH134与RH294考试里考生最常踩的五个坑
5.1 错在哪一题:fstab写错导致重启后系统起不来
这道题几乎是RHCSA必考题,但你一旦写错,后果是重启后进不了系统。常见错误是把设备名直接写进fstab,比如/dev/vg1/lv1,但设备名在系统重启后可能变化。正确做法是先用blkid查到逻辑卷的UUID,然后以UUID=xxx的格式写入fstab。为什么错?因为考试环境是多台虚拟机共用底层存储,设备顺序不固定,设备名不可靠。怎么答对?始终用UUID,写完执行mount -a验证,有报错先别重启,立刻修正。
5.2 错在哪一题:SELinux上下文被忽略导致服务无法访问
文件权限、属主都对,但web服务就是无法访问,多半是SELinux问题。考生最常见的错误是把SELinux临时设成Permissive就交卷,但评分系统会检查getenforce,看到不是Enforcing直接扣分。为什么错?因为考试环境强调的是“在Enforcing模式下完成配置验证”,临时关闭等于没做。怎么答对?用semanage fcontext -a -t httpd_sys_content_t /path做持久化配置,然后restorecon -Rv /path,最后用getenforce和ls -Z双重验证。
5.3 错在哪一题:Ansible Playbook里漏写become: true
RHCE模拟评分中,很多考生写Playbook不写提权,导致dnf、service、user这类需要root权限的模块全部执行失败。为什么错?因为在RH294环境里,student用户不是root,用普通权限跑管理任务必败。怎么答对?每个Play下都写become: true,如果个别任务需要特定用户,再单独覆盖become_user。验证方式是执行playbook后看有没有failed: [servera]的输出,没有failed只是第一步,还要看服务的实际状态。
5.4 错在哪一题:cron时间字段顺序记反导致任务乱执行
RHCSA考cron题时,30 2 * * *表示每天凌晨2点30分,但很多考生把时分字段写反成2 30 * * *,任务变成每个小时30分并且第2分钟时执行,看起来诡异但系统不报错,评分的时候才发现没对上。为什么错?因为大家只背了分时日月周这五个字,但没理解第一个字段是“分钟”而不是“小时”。怎么答对?写完后用crontab -l查看,对照题目要求的时间,逐字段检查。
5.5 错在哪一题:RH294快照选错导致做了半天题白做
RH294环境的三个快照——初始化、RHCSA、RHCE——各有用途,选错快照的后果是练习内容与环境不匹配。例如,你在RHCSA快照里练习Ansible,发现ansible命令根本不存在,因为RHCSA快照对应的就是RHCSA考试环境,没有预装Ansible控制端组件。为什么错?没理解快照的用意:初始化快照是未配置状态,适合从零练;RHCSA快照是准备RHCSA题目的;RHCE快照才带完整的Ansible控制端和被管端。怎么答对?练RHCE的题,开机后在virt-manager里确认当前快照是RHCE,再执行exam-setup初始化。
6. 考场微操:从exam-setup到exam-grade,这套流程练十遍都不嫌多
拿到RH134或RH294环境后,第一件要做的事不是急着敲命令,而是把考场的完整流程从头到尾走一遍。RH294模拟考试的标准动作是:开机选择RHCE快照,登录kiosk账户(密码redhat),执行exam-setup初始化环境,然后开始答题,做完后执行exam-grade查看评分。这套流程看着简单,但不少人栽在第一步——快照选错,后面全白做。还有一个细节是登录时长的限制:exam-setup和exam-grade只在特定账户下可用,如果你登录的是root或者其他账户,这两个命令都不存在。
具体到RH134环境,流程更简单但同样有顺序要求:在foundation上执行rht-vmctl start all启动所有虚拟机,等workstation和servera/serverb都启动完毕再开始操作。这里有个血泪经验:不要急着用SSH连接servera,先看workstation上的lab命令是否已经执行了对应题目的初始化。如果lab状态不对,你做了一堆配置,最后评分还是0分,因为题目初始状态就没准备好。启动后用rht-vmctl status all查看各虚拟机状态,确认running再动手。
答完题后的验证习惯同样重要。RHCSA的评分方式是exam-grade,RH294也一样,但这命令只出总分和每题的得分,不告诉你错在哪个配置。所以平时练习时,每答完一题就用systemctl status、ansible-playbook --syntax-check这类不改变环境状态的命令检查一下,确认服务活着、playbook语法没问题再交卷。这在练习中看似拖慢速度,实则是避免最后所有错题集中爆发的最好手段。
把流程拆成操作习惯后,每次模拟都固定走一遍:启动虚拟机(或切换快照)→ 登录 kiosk → exam-setup → 答题 → exam-grade → 切回初始化快照。这套循环练上十遍,考场上的“环境操作分”就稳了。那以后我每次做模拟考试都强制自己先花5分钟确认快照、账户、初始化状态这三样,再开始答题,哪怕觉得这5分钟浪费也觉得踏实。练到最后你会发现,真正让你挂掉的往往不是某个命令不会,而是环境操作流程里的某个小步骤被漏掉。希望这篇文章帮你在考场上少走这几步冤枉路。
本文还有配套的精品资源,点击获取