Skip to content

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  # 应用防火墙规则
  • 验证
    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 容器
  • 验证
    bash
    ansible all -m ping  # 验证 Ansible 主机连接
    podman ps -a  # 验证容器状态
    curl http://localhost:8080  # 测试容器应用

32.3 考试准备与资源

  • 考试准备
    • 时间管理:分配 60% 时间给高分任务(SELinux, Ansible, 防火墙),40% 检查其他任务。
    • 模拟考试:在 ZSLinux 上完成以下任务:
      bash
      useradd -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)。
    • 每日练习:完成各章节实践任务,记录配置到 /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 实践任务

  1. 使用 SecureCRT 登录 ZSLinux,创建用户 testuser 并配置 sudo 权限。
  2. 配置 SELinux 和防火墙以支持 HTTP 服务(80/tcp)。
  3. 创建 Ansible Playbook 部署 Apache 到远程主机(192.168.1.101)。
  4. 运行 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

Released under the MIT License.