RHCE — RH294 任务概览
1. 按要求安装和配置 Ansible
- 按照下方所述,在控制节点 workstation.lab.example.com 上安装和配置 Ansible:
任务要求
- 安装所需的软件包 (考试时要验证一下ansible是不是装好了)
- 创建名为/home/student/ansible/inventory 的静态清单文件, 以满足以下需求:
servera 是dev 主机组的成员
serverb 是 test 主机组的成员
serverc 和 serverd 是 prod 主机组的成员
prod 组 是webservers 主机组的成员
bastion 是 balancers 主机组的成员 - 创建名为/home/student/ansible/ansible.cfg 的配置文件, 以满足以下要求:
主机清单文件为/home/student/ansible/inventory
playbook 中使用的角色的位置包括/home/student/ansible/roles
注意:因student 执行命令时需要输入密码, 会导致ansible 执行失败, 因此先添加sudoers 规则(考试中不需要修改,在考试中用的是 admin 用户)
2. 创建和运行 Ansible 临时命令
- 作为系统管理员, 您需要在受管节点上安装软件.
- 请按照下方所述, 创建一个名为/home/student/ansible/adhoc.sh 的 shell 脚本,
- 该脚本将使用Ansible 临时命令在各个受管节点上安装 yum 存储库:
- 说白了就是用ansible命令配置yum源
任务要求
- 存储库 1: 存储库的名称为 rh294_BASE
描述为 rh294 base software
存储库为开启状态
基础URL 为 http://content.example.com/rhel8.0/x86_64/dvd/BaseOS
GPG 签名检查为启用状态
GPG 密钥 URL 为 http://content.example.com/rhel8.0/x86_64/dvd/RPM-GPG-KEY-redhat-release - 存储库 2: 存储库的名称为 rh294_STREAM
描述为 rh294 stream software
存储库为开启状态
基础URL 为 http://content.example.com/rhel8.0/x86_64/dvd/AppStream
GPG 签名检查为启用状态
GPG 密钥 URL 为 http://content.example.com/rhel8.0/x86_64/dvd/RPM-GPG-KEY-redhat-release
3. 安装 php 和 mariadb 软件包到指定主机组
- 创建一个名为 /home/student/ansible/packages.yml 的 playbook:
任务要求
- 将 php 和 mariadb 软件包安装到 dev、test 和 prod 主机组中的主机上
- 将RPM Development Tools 软件包组安装到 dev 主机组中的主机上
- 将 dev 主机组中主机上的所有软件包更新为最新版本
4. 使用 RHEL 系统角色软件包创建配置时间角色
- 安装 RHEL 系统角色软件包,并创建符合以下条件的 playbook
任务要求
- 编写 /home/student/ansible/timesync.yml
- 在所有受管节点上运行
- 使用 timesync 角色
- 配置该角色,以使用当前有效的 NTP 提供商
- 配置该角色,以使用时间服务器 classroom.example.com
- 配置该角色,以启用 iburst 参数
5. 使用Ansible Galaxy 安装角色
- 使用 Ansible Galaxy 和要求文件 /home/student/ansible/roles/requirements.yml,
- 从以下 URL 下载角色并安装到 /home/student/ansible/roles:
任务要求
- 从链接下载角色并安装角色
1 | http://172.25.250.250/ansible2.8/haproxy.tar.gz 此角色的名称应当为 balancer |
6. 创建和使用 apache 角色
- 根据下列要求,在/home/student/ansible/roles 中创建名为 http 的角色
- 按照下方所述,创建一个使用此角色的 playbook /home/student/ansible/newrole.yml:
- 该playbook 在webservers 主机组中的主机上运行
任务要求
- httpd 软件包已安装,设为在系统启动时启用并启动
- 防火墙已启用并正在运行,并使用允许访问Web 服务器的规则
- 模板文件 index.html.j2 已存在,用于创建具有以下输出的文件/var/www/html/index.html: Welcome to HOSTNAME on IPADDRESS
- 其中,HOSTNAME 是受管节点的完全限定域名,IPADDRESS 则是受管节点的 IP 地址。
7. 从 Ansible Galaxy 使用角色创建web负载均衡
- 根据下列要求,创建一个名为 /home/student/ansible/roles.yml 的playbook:
- 这道题要应用到第5道题下载并初始化好了的两个角色
- 其实就部署一负载均衡器,只需要调用角色就可以了
任务要求
- playbook 中包含一个 play,该 play 在 balancers 主机组中的主机上运行并将使用 balancer 角色。
- 此角色配置一项服务,以在 webservers 主机组中的主机之间平衡 Web 服务器请求的负载。
- 浏览到 balancers 主机组中的主机(例如 http://bastion.lab.example.com/ )将生成以下输出: Welcome to serverc.example.com on 172.25.1.12
- 重新加载浏览器将从另一 Web 服务器生成输出: Welcome to serverd.example.com on 172.25.1.13
- playbook 中包含一个 play,该 play 在 webservers 主机组中的主机上运行并将使用 phpinfo 角色。
- 通过 URL /hello.php 浏览到 webservers 主机组中的主机将生成以下输出: Hello PHP World from FQDN 其中,FQDN 是主机的完全限定名称。
- 浏览到 http://serverc.lab.example.com/hello.php 会生成以下输出: Hello PHP World from serverc.example.com 另外还有 PHP 配置的各种详细信息,如安装的PHP 版本等。
- 浏览到 http://serverd.lab.example.com/hello.php 会生成以下输出: Hello PHP World from serverd.example.com 另外还有 PHP 配置的各种详细信息,如安装的PHP 版本等。
8. 利用playbook在指定主机组创建和使用逻辑卷
- 创建一个名为/home/student/ansible/lv.yml 的 playbook,
- 它将在所有受管节点上运行以执行下列任务:
任务要求
- 创建符合以下要求的逻辑卷:
- 逻辑卷创建在 research 卷组中逻辑卷名称为 data
- 逻辑卷大小为 1500MiB
- 使用ext4 文件系统格式化逻辑卷
- 如果无法创建请求的逻辑卷大小,应显示错误消息Could not create logical volume of that size,并且应改为使用大小 800MiB。
- 如果卷组research 不存在 ,应显示错误消息Volume group does not exist。
- 不要以任何方式挂载逻辑卷
注意:有的主机上有逻辑卷阿祖,有的主机上没有逻辑卷,有的主机上不足够创建1500但能创建800
9. 利用playbooke生成主机清单文件
- 使用playbook在所有主机组生成指定格式的文件
任务要求
- 将一个初始模板文件从 http://172.25.250.250/ansible2.8/fifiles/hosts.j2 下载到 /home/student/ansible
- 完成该模板,以便用它生成以下文件:针对每个清单主机包含一行内容,其格式与 /etc/hosts 相同创建名为 /home/student/ansible/hosts.yml 的 playbook,
- 它将使用此模板在 dev 主机组中的主机上生成文件 /etc/myhosts。
- 该 playbook 运行后,dev 主机组中主机上的文件/etc/myhosts 应针对每个受管主机包含一行内容:
1 | 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 |
10. 利用playbook在不同主机组修改文件内容
- 按照下方所述,创建一个名为 /home/student/ansible/issue.yml 的 playbook:
- 该 playbook 将在所有清单主机上运行
- 该 playbook 会将 /etc/issue 的内容替换为下方所示的一行文本:
任务要求
- 在 dev 主机组中的主机上,这行文本显示为:Development
- 在 test 主机组中的主机上,这行文本显示为:Test
- 在 prod 主机组中的主机上,这行文本显示为:Production
11. 利用playbook创建 Web 内容目录
- 按照下方所述,创建一个名为 /home/student/ansible/webcontent.yml 的 playbook:
- 该 playbook 在 dev 主机组中的受管节点上运行
任务要求
- 创建符合下列要求的目录 /webdev: 所有者为 devops 组具有常规权限:
owner=read+write+execute,group=read+write+execute, other=read+execute - 具有特殊权限: set group ID
- 用符号链接将 /var/www/html/webdev 链接到 /webdev
- 创建文件 /webdev/index.html,其中包含如下所示的单行文本:Development
- 在 dev 主机组中主机上浏览此目录(例如 http://servera.lab.example.com/webdev/ )将生成以下输出:Development
12. 利用playbook生成所有清单主机指定硬件信息报告
- 创建一个名为 /home/student/ansible/hwreport.yml 的 playbook,
- 它将在所有受管节点上生成含有以下信息的输出文件 /root/hwreport.txt:
任务要求
- 输出文件 /root/hwreport.txt
- hostname: inventoryhostname
- mem: memory_in_MB
- bios: BIOS_version
- vda: disk_vda_size
- vdb: disk_vdb_size
- 输出文件中的每一行含有一个 key=value 对。
- playbook 应当从 http://content.example.com/fifiles/hwreport.empty 下载文件,并将它保存为/root/hwreport.txt
- 使用正确的值修改 /root/hwreport.txt
- 如果硬件项不存在,相关的值应设为NONE
13. 创建Ansible密码库
- 按照下方所述,创建一个 Ansible 库来存储用户密码:库名称为 /home/student/ansible/locker.yml
任务要求
- 库中含有两个变量,名称如下:
- pw_developer,值为 Imadev
- pw_manager,值为 Imamgr
- 用于加密和解密该库的密码为kkk123456
- 密码存储在文件 /home/student/ansible/secret.txt 中
14. 基于Ansible密码库创建用户帐户
- 从 http://172.25.250.250/ansible2.8/user_list.yml 下载要创建的用户的列表,并将它保存到/home/student/ansible
- 在本次考试中使用在其他位置创建的密码库 /home/student/ansible/locker.yml,
- 创建名为/home/student/ansible/users.yml 的 playbook,
- 从而按以下所述创建用户帐户:
任务要求
- 职位描述为 developer 的用户应当:
- 在 dev 和 test 主机组中的受管节点上创建
- 从 pw_developer 变量分配密码
- 是附加组 student 的成员
- 新增要求设置密码有效期为30天
- 职位描述为 manager 的用户应当:
- 在 prod 主机组中的受管节点上创建
- 从 pw_manager 变量分配密码
- 是附加组 devops 的成员
- 新增要求设置密码有效期为30天
- 密码应采用 SHA512 哈希格式。
- 您的 playbook 应能够在本次考试中使用在其他位置创建的库密码文件/home/student/ansible/secret.txt 正常运行
15.更新 Ansible库的密钥
- 按照下方所述,更新现有 Ansible 库的密钥:
任务要求
- 从http://172.25.250.250/ansible2.8/salaries.yml 下载 Ansible 库到 /home/student/ansible
- 当前的库密码为 AAAAAAAAA
- 新的库密码为 BBBBBBBBB
- 库使用新密码保持加密状态
16.编写playbook创建cron计划任务
- 编写名cron.yml的playbook,在指定主机组servera上运行
- 这道题playbook叫什么名字不重要啊,反正都是复制,指定的主机组还是要看准了的
任务要求
- 基于student用户创建cron任务
- 每隔两分钟执行logger “hello rhce”
注意:住过是其他时间,就帮助里找阐述就行了