rhce9认证
1. 安装和配置 Ansible
在控制节点 control 上安装和配置 Ansible:
- 安装所需的软件包
- 创建静态清单文件
/home/greg/ansible/inventory
,满足以下要求:- node1 属于 dev 主机组
- node2 属于 test 主机组
- node3 和 node4 属于 prod 主机组
- node5 属于 balancers 主机组
- prod 组是 webservers 主机组的成员
- 创建配置文件
/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
:
- 在 balancers 主机组中的主机上运行并使用 balancer 角色,配置负载均衡服务
- 在 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. 生成主机文件
- 从
http://classroom/materials/hosts.j2
下载模板到/home/greg/ansible
- 修改模板,使其能为每个清单主机生成一行
/etc/hosts
格式的内容 - 从
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
- dev 主机组:
12. 创建 Web 内容目录
创建 playbook /home/greg/ansible/webcontent.yml
,在 dev 主机组中的主机上:
- 创建目录
/webdev
:- 所有者为 webdev 组
- 权限:
rwxrwsr-x
- 设置组 ID
- 创建符号链接
/var/www/html/webdev
指向/webdev
- 创建文件
/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_developer
:Imadev
pw_manager
:Imamgr
- 加密密码:
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
,报错