Appearance
32. RHCE 学习计划
本章节提供 RHEL 8.10(主机名 ZSLinux)上 RHCE(Red Hat Certified Engineer)考试的详细学习计划,指导使用 SecureCRT 完成实践任务,配合 SecureFX 传输配置文件。内容涵盖分阶段学习计划(用户管理、SELinux、Systemd、LVM、防火墙、SSH、Podman、Ansible)、考试准备和资源建议,以高效备考 RHCE 为目标,全面实用,适合初学者和运维人员。所有操作在 ZSLinux 环境中测试,确保实验一致性。
32.1 前提条件
- RHEL 8.10 已安装(参考第 1 章),主机名设置为
ZSLinux. - 使用 SecureCRT 登录(SSH2 协议,端口 2222,参考第 6 章).
- 使用 SecureFX 传输文件(SFTP 协议).
- 具有 root 或 sudo 权限.
- 系统已订阅并启用 RHEL 和 EPEL 仓库(参考第 4 和 7 章).
- 防火墙和 SELinux 启用(参考第 13 章).
- 网络连接正常,时间同步配置完成(参考第 3 章).
- 准备至少一台虚拟机(VMware Workstation Pro)用于实践.
32.2 RHCE 学习计划
32.2.1 第 1-2 周:基础配置与用户管理
- 目标:掌握基本命令、用户/组管理、文件权限。
- 任务:
- 创建用户和组:bash
groupadd -g 1001 devteam # 创建 devteam 组 useradd -u 1001 -g devteam -m -s /bin/bash developer # 创建 developer 用户 passwd developer # 设置用户密码 - 配置 sudo 权限:bash
echo "developer ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/developer # 授予 sudo 权限 - 管理文件权限:bash
mkdir /data; chown developer:devteam /data; chmod 750 /data # 设置目录权限
- 创建用户和组:
- 验证:bash
getent passwd developer # 验证用户 getent group devteam # 验证组 ls -ld /data # 验证权限
32.2.2 第 3-4 周:SELinux 与防火墙
- 目标:掌握 SELinux 上下文、布尔值和防火墙配置。
- 任务:
- 配置 SELinux:bash
semanage fcontext -a -t httpd_sys_content_t "/webdata(/.*)?" # 设置 Web 目录上下文 restorecon -R -v /webdata # 应用上下文 setsebool -P httpd_enable_homedirs on # 启用 HTTP 访问用户目录 - 配置自定义 SSH 端口(2222):bash
semanage port -a -t ssh_port_t -p tcp 2222 # 设置 SELinux 端口上下文 firewall-cmd --permanent --add-port=2222/tcp # 允许自定义 SSH 端口 firewall-cmd --reload # 应用防火墙规则
- 配置 SELinux:
- 验证:bash
ls -Z /webdata # 检查 SELinux 上下文 semanage port -l | grep ssh # 验证端口上下文 firewall-cmd --list-ports # 验证防火墙规则
32.2.3 第 5-6 周:Systemd 与存储管理
- 目标:掌握 Systemd 服务管理和 LVM/RAID 配置。
- 任务:
- 创建自定义服务:bash
vim /etc/systemd/system/custom-app.service # 创建自定义服务 # 添加: [Unit] Description=Custom Application After=network.target [Service] ExecStart=/usr/bin/custom-app --option Restart=always [Install] WantedBy=multi-user.target systemctl daemon-reload # 重新加载 Systemd systemctl enable --now custom-app # 启用并启动服务 - 配置 LVM:bash
pvcreate /dev/sdb # 创建物理卷 vgcreate vg_data /dev/sdb # 创建卷组 lvcreate -L 10G -n lv_data vg_data # 创建 10GB 逻辑卷 mkfs.xfs /dev/vg_data/lv_data # 格式化逻辑卷
- 创建自定义服务:
- 验证:bash
systemctl status custom-app # 检查服务状态 lvs # 验证逻辑卷
32.2.4 第 7-8 周:自动化与容器
- 目标:掌握 Ansible 自动化和 Podman 容器管理。
- 任务:
- 配置 Ansible:bash
dnf install -y ansible # 安装 Ansible vim /etc/ansible/hosts # 编辑主机清单 # 添加: [webservers] 192.168.1.101 vim /root/playbook.yml # 创建 Playbook # 添加: --- - hosts: webservers tasks: - name: Install httpd yum: name: httpd state: present - name: Start httpd service: name: httpd state: started enabled: yes ansible-playbook playbook.yml # 运行 Playbook - 运行 Podman 容器:bash
podman pull registry.access.redhat.com/ubi8/httpd-24 # 拉取 UBI 镜像 podman run -d -p 8080:8080 --name web-container registry.access.redhat.com/ubi8/httpd-24 # 运行 HTTP 容器
- 配置 Ansible:
- 验证:bash
ansible all -m ping # 验证 Ansible 主机连接 podman ps -a # 验证容器状态 curl http://localhost:8080 # 测试容器应用
32.3 考试准备与资源
- 考试准备:
- 时间管理:分配 60% 时间给高分任务(SELinux, Ansible, 防火墙),40% 检查其他任务。
- 模拟考试:在
ZSLinux上完成以下任务:bashuseradd -m testuser; passwd testuser # 创建测试用户 firewall-cmd --permanent --add-service=http # 配置防火墙 semanage fcontext -a -t httpd_sys_content_t "/webapp(/.*)?" # 配置 SELinux ansible-playbook /root/playbook.yml # 运行 Ansible Playbook - 常见陷阱:
- SELinux 未启用(检查:
getenforce)。 - 防火墙规则未应用(运行:
firewall-cmd --reload)。 - Ansible 语法错误(验证:
ansible-playbook --syntax-check)。
- SELinux 未启用(检查:
- 每日练习:完成各章节实践任务,记录配置到
/root/config-records(参考第 30 章)。
- 资源建议:
- 虚拟机:使用 VMware Workstation Pro 创建多台 RHEL 8.10 虚拟机,模拟客户端-服务器环境。
- SOS 报告:生成报告分析系统状态:bash
sosreport --only-plugins=system,selinux,networking # 生成诊断报告 - 参考章节:重点复习第 6 章(SSH)、13 章(SELinux/防火墙)、18 章(Podman)、26 章(Ansible)。
- 验证学习成果:bash
getent passwd testuser # 验证用户创建 firewall-cmd --list-services # 验证防火墙规则 ls -Z /webapp # 验证 SELinux 上下文 ansible all -m ping # 验证 Ansible 连接 podman ps -a # 验证容器状态 - 测试 SSH 连接:bash
ssh -p 2222 testuser@ZSLinux # 测试 SSH 连接(参考第 6 章)
32.4 实践任务
- 使用 SecureCRT 登录
ZSLinux,创建用户testuser并配置 sudo 权限。 - 配置 SELinux 和防火墙以支持 HTTP 服务(80/tcp)。
- 创建 Ansible Playbook 部署 Apache 到远程主机(192.168.1.101)。
- 运行 Podman 容器并验证 HTTP 访问(8080/tcp)。
32.5 自测问题
- 问题:如何调度每周备份?
- 答案:
crontab -e,添加0 2 * * 0 tar -czf /backup/system-$(date +%F).tar.gz /etc
- 答案:
- 问题:如何验证 SELinux 上下文?
- 答案:
ls -Z /webdata
- 答案:
- 问题:如何测试 Ansible 主机连接?
- 答案:
ansible all -m ping
- 答案:
