文章

rhce9认证

rhce9认证

1. 安装和配置 Ansible

在控制节点 control 上安装和配置 Ansible:

  1. 安装所需的软件包
  2. 创建静态清单文件 /home/greg/ansible/inventory,满足以下要求:
    • node1 属于 dev 主机组
    • node2 属于 test 主机组
    • node3 和 node4 属于 prod 主机组
    • node5 属于 balancers 主机组
    • prod 组是 webservers 主机组的成员
  3. 创建配置文件 /home/greg/ansible/ansible.cfg,满足以下要求:
    • 主机清单文件为 /home/greg/ansible/inventory
    • playbook 使用的角色位置包括 /home/greg/ansible/roles
    • 自定义 collection 目录在 /home/greg/ansible/mycollection
1
2
3
4
5
6
7
8
9
10
11
[dev]
node1
[test]
node2
[prod]
node3
node4
[balancers]
node5
[webservers:children]
prod

2. 配置系统使用默认存储库

创建 playbook /home/greg/ansible/yum_repo.yml,在各受管节点上安装 yum 存储库:

  • 存储库1
    • 名称:EX294_BASE
    • 描述:EX294 base software
    • 基础 URL:http://content/rhel9.0/x86_64/dvd/BaseOS
    • GPG 签名检查:启用
    • GPG 密钥 URL:http://content/rhel9.0/x86_64/dvd/RPM-GPG-KEY-redhat-release
    • 存储库状态:启用
  • 存储库2
    • 名称:EX294_STREAM
    • 描述:EX294 stream software
    • 基础 URL:http://content/rhel9.0/x86_64/dvd/AppStream
    • GPG 签名检查:启用
    • GPG 密钥 URL:http://content/rhel9.0/x86_64/dvd/RPM-GPG-KEY-redhat-release
    • 存储库状态:启用

3. 安装软件包

创建 playbook /home/greg/ansible/packages.yml

  • 将 php 和 mariadb 软件包安装到 dev、test 和 prod 主机组中的主机
  • 将 RPM Development Tools 软件包组安装到 dev 主机组中的主机
  • 将 dev 主机组中主机上的所有软件包更新为最新版本

4. 使用 RHEL 系统角色

安装 RHEL 系统角色软件包,并创建 playbook /home/greg/ansible/selinux.yml

  • 在所有受管节点上运行
  • 使用 selinux 角色
  • 配置被管理节点的 SELinux 为 enforcing 模式

5. 配置 collection

将以下 3 个 collection 安装到 /home/greg/ansible/mycollection 目录中:

  • redhat-insights-1.0.7.tar.gz
  • community-general-5.5.0.tar.gz
  • redhat-rhel_system_roles-1.19.3.tar.gz

6. 使用 Ansible Galaxy 安装角色

使用 Ansible Galaxy 和文件 /home/greg/ansible/roles/requirements.yml,从以下 URL 下载角色并安装到 /home/greg/ansible/roles

  • http://classroom/materials/haproxy.tar(角色名:balancer)
  • http://classroom/materials/phpinfo.tar(角色名:phpinfo)

7. 创建和使用角色

/home/greg/ansible/roles 中创建名为 apache 的角色,要求:

  • 安装并启用 httpd 服务
  • 启用防火墙并允许访问 Web 服务器
  • 使用模板文件 index.html.j2 创建 /var/www/html/index.html,内容为:
    1
    
    Welcome to HOSTNAME on IPADDRESS
    

    (HOSTNAME 为完全限定域名,IPADDRESS 为 IP 地址)

创建 playbook /home/greg/ansible/apache.yml

  • 在 webservers 主机组中的主机上运行并使用 apache 角色

8. 从 Ansible Galaxy 使用角色

创建 playbook /home/greg/ansible/roles.yml

  1. 在 balancers 主机组中的主机上运行并使用 balancer 角色,配置负载均衡服务
  2. 在 webservers 主机组中的主机上运行并使用 phpinfo 角色,确保:
    • 访问 /hello.php 输出 Hello PHP World from FQDN
    • 显示 PHP 配置信息

9. 创建和使用逻辑卷

创建 playbook /home/greg/ansible/lv.yml,在所有受管节点上执行以下任务:

  • 在 research 卷组中创建名为 data、大小为 1500 MiB 的逻辑卷
  • 使用 ext4 文件系统格式化逻辑卷
  • 若无法创建 1500 MiB,则显示错误并改为创建 800 MiB
  • 若卷组 research 不存在,显示错误信息
  • 不挂载逻辑卷

10. 生成主机文件

  1. http://classroom/materials/hosts.j2 下载模板到 /home/greg/ansible
  2. 修改模板,使其能为每个清单主机生成一行 /etc/hosts 格式的内容
  3. http://classroom/materials/hosts.yml 下载 playbook 到 /home/greg/ansible,使用模板在 dev 主机组中的主机上生成文件 /etc/myhosts

11. 修改文件内容

创建 playbook /home/greg/ansible/issue.yml,在所有清单主机上运行:

  • /etc/issue 内容替换为:
    • dev 主机组:Development
    • test 主机组:Test
    • prod 主机组:Production

12. 创建 Web 内容目录

创建 playbook /home/greg/ansible/webcontent.yml,在 dev 主机组中的主机上:

  1. 创建目录 /webdev
    • 所有者为 webdev 组
    • 权限:rwxrwsr-x
    • 设置组 ID
  2. 创建符号链接 /var/www/html/webdev 指向 /webdev
  3. 创建文件 /webdev/index.html,内容为 Development

13. 生成硬件报告

创建 playbook /home/greg/ansible/hwreport.yml,在所有受管节点上生成 /root/hwreport.txt,包含:

  • 清单主机名称
  • 总内存大小(MB)
  • BIOS 版本
  • 磁盘设备 vda 和 vdb 的大小
  • 每行格式为 key=value
  • 若硬件不存在,值为 NONE
  • http://classroom/materials/hwreport.empty 下载初始模板

14. 创建密码库

创建 Ansible 库 /home/greg/ansible/locker.yml

  • 变量:
    • pw_developerImadev
    • pw_managerImamgr
  • 加密密码:whenyouwishuponastar
  • 密码存储在 /home/greg/ansible/secret.txt

15. 创建用户账户

http://classroom/materials/user_list.yml 下载用户列表,创建 playbook /home/greg/ansible/users.yml

  • developer 用户:
    • 在 dev 和 test 主机组中创建
    • 密码来自 pw_developer 变量
    • 密码有效期 30 天
    • 属于 devops 组
  • manager 用户:
    • 在 prod 主机组中创建
    • 密码来自 pw_manager 变量
    • 密码有效期 30 天
    • 属于 opsmgr 组
  • 使用密码库 /home/greg/ansible/locker.yml 和密码文件 /home/greg/ansible/secret.txt

16. 更新 Ansible 库的密钥

更新现有 Ansible 库 /home/greg/ansible/salaries.yml

  • http://classroom/materials/salaries.yml 下载
  • 当前密码:insecure8sure
  • 新密码:bbs2you9527
  • 保持加密状态

附加题

17. 配置 cron 作业

创建 playbook /home/greg/ansible/cron.yml,在 test 主机组中的主机上:

  • 配置 cron 作业,每 2 分钟以用户 natasha 身份运行:
    logger "EX200 in progress"

18. 使用 TimeSync RHEL 系统角色

安装 RHEL 系统角色软件包,创建 playbook /home/greg/ansible/timesync.yml

  • 在所有受管节点上运行
  • 使用 timesync 角色
  • 配置时间服务器为 classroom.lab.example.com

19. 创建分区

在 balancers 主机上:

  • 划分 /dev/vdb1(1500 MiB,若不足则 800 MiB)
  • 格式化为 ext4
  • 挂载到 /newpart1
  • 若无 /dev/vdb,报错
本文由作者按照 CC BY 4.0 进行授权