** RHCE 8 考试内容
**
一、安装和配置Ansible
按照下方描述,在控制节点 172.25.250.254安装和配置Ansible
安装所需的软件包
创建名为**/home/greg/ansible/inventory的静态清单文件,以满足一下要求:
172.25.250.9是dev主机组的成员
172.25.250.10是test主机组的成员
172.25.250.11和172.25.250.12是prod主机组的成员
172.25.250.13是balancers主机组的成员
prod组是webservers主机组的成员
创建名为/home/greg/ansible/ansible.cfg的静态清单文件,以满足以下要求:
主机清单文件为:/home/greg/ansible/inventory**
playbook中使用的角色的位置包括**/home/greg/ansible/roles**
二、创建和运行Ansible临时命令
作为系统管理员,您需要在受管节点上安装软件
请按照正文所述,创建一个名为**/home/greg/ansible/adhoc.sh**的shell脚本,用以运行Ansible临时命令在各个受管节点上安装yum存储库
存储库1:
存储库的名称为EX294_BASE
描述为EX294 base software
基础URL为http://content/xxx
GPG签名检查为启用状态
GPG秘钥URL为http://content/xxx
存储库为启用状态
存储库2:
存储库的名称为EX294_BASE
描述为EX294 base software
基础URL为http://content/xxx
GPG签名检查为启用状态
GPG秘钥URL为http://content/xxx
存储库为启用状态
三、安装软件包
创建一个名为**/home/greg/ansible/packages.yml的playbook
将php和mariadb软件包安装到dev,test和prod主机组的主机中
将RPM Development Tools软件包组安装到dev主机组的主机上
将dev**主机组中主机上的所有软件包名称更新为最新版本
四、使用RHEL系统角色
安装RHEL系统角色软件包,并创建符合以下条件的playbook /home/greg/ansible/timesync.yml
在所有受管节点上运行
使用timesync角色
配置该角色,以使用当前有效的NTP提供商
配置该角色,以使用时间服务器172.25.254.254
配置该角色,以启用iburst参数
五、使用Ansible Galaxy安装角色
使用Ansible Galaxy和要求文件**/home/greg/ansible/roles/requirements.yml**。从以下URL下载角色并安装到**/home/greg/ansible/roles**
http://materials/haproxy.tar 此角色的名称应当为 balancer
http://materials/phpinfo.tar 此角色的名称应当为 phpinfo
六、创建和使用角色
根据下列要求,在**/home/greg/ansible/roles中创建名为apache的角色
httpd软件包已安装,设为在系统启动时启用并启动**
防火墙已启用并正在运行,并使用允许访问Web服务器的规则
模板文件index.html.j2已存在,用于创建具有以下输出的文件**/var/www/html/index.html**:Welcome to HOSTNAME ON IPADDRESS 。其中,HOSTNAME是受管节点的完全限定域名,IPADDRESS则是受管节点的IP地址
七、从Ansible Galaxy使用角色
根据下列要求,创建一个名为**/home/greg/ansible/roles.yml**的playbook:
playbook中含有一个play,该play在balancers主机组中的主机上运行并将使用balancer角色
此角色配置一项服务器,以在webservers主机组中的主机之间平衡Web服务器请求的负载。
浏览到balancer主机组中的主机(例如http://172.25.250.13)将生成以下输出:Welcome to serverb.lab.example.com on 172.25.250.11
重新加载浏览器将从另一Web服务器生成输入:Welcome to serverc.lab.example.com on 172.25.250.12
playbook中包含一个play,该play在webservers主机组中的主机上运行并将使用phpinfo角色。
请通过URL /hello.php浏览到webservers主机组中的主机将生成以下输出: Hello PHP World from FQDN
其中,FQDN是主机的完全限定名称。
Hello PHP World from serverb.lab.example.com
另外还有PHP配置的各种详细信息,如安装的PHP版本等。
同样,浏览到http://172.25.250.12/hello.php会生成以下输出:Hello PHP World from serverc.lab.example.com。另外还有PHP配置的各种详细信息,如安装的PHP版本等。
八、创建和使用逻辑卷
创建一个名为**/home/greg/ansible/lv.yml**的playbook,它将在所有受管节点上运行以执行下列任务:
创建符合以下要求的逻辑卷:
逻辑卷创建在research卷组中
逻辑卷名称为data
逻辑卷大小为1500MiB
使用ext4文件系统格式化逻辑卷
如果无法创建请求的逻辑卷大小,应显示错误信息Could not create logical volume of that size,并且应改为使用大小800MiB。
如果卷组research不存在,应显示错误信息 Volume group done not exist
不要以任何方式挂载逻辑卷
九、生成主机文件
将一个初始模板文件从http://materials/hosts.j2下载到**/home/greg/ansible**
完成该模板,以使用它生成以下文件:针对每个清单主机包含一行内容,其格式与**/etc/hosts相同
创建名为/home/greg/ansible/hosts.yml的playbook,它将使用此模板在dev主机组中的主机上生成文件/etc/myhosts**。
该playbook运行后,dev主机组中主机上的文件**/etc/myhosts**应针对每个受管主机包含一行内容:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.25.250.9 workstation.lab.example.com workstation
172.25.250.10 servera.lab.example.com servera
172.25.250.11 serverb.lab.example.com serverb
172.25.250.12 serverc.lab.example.com serverc
172.25.250.13 serverd.lab.example.com serverd
十、修改文件内容
按照下方所述,创建一个名为 /home/greg/ansible/issue.yml 的 playbook:
该 playbook 将在所有清单主机上运行
该 playbook 会将 /etc/issue 的内容替换为下方所示的一行文本:
任务要求
在 dev 主机组中的主机上,这行文本显示为:Development
在 test 主机组中的主机上,这行文本显示为:Test
在 prod 主机组中的主机上,这行文本显示为:Production
十一、创建Web内容目录
按照下方所述,创建一个名为 /home/greg/ansible/webcontent.yml 的 playbook:
该 playbook 在 dev 主机组中的受管节点上运行
创建符合下列要求的目录 /webdev: 所有者为 webdev组具有常规权限:
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://172.25.250.9/webdev/ )将生成以下输出:Development
十二、生成硬件报告
创建一个名为 /home/greg/ansible/hwreport.yml 的 playbook,
它将在所有受管节点上生成含有以下信息的输出文件 /root/hwreport.txt,含有以下:
清单主机名称
以MB表示的总内存大小
BIOS版本
磁盘设备vda的大小
磁盘设备vdb的大小
输出文件中的每一行含有一个 key=value 对。
playbook 应当从 http://materials/hwreport.empty 下载文件,并将它保存为**/root/hwreport.txt**
使用正确的值改为 /root/hwreport.txt
如果硬件项不存在,相关的值应设为NONE
十三、创建密码库
按照下方所述,创建一个 Ansible 库来存储用户密码:库名称为 /home/greg/ansible/locker.yml
库中含有两个变量,名称如下:
pw_developer,值为 Imadev
pw_manager,值为 Imamgr
用于加密和解密该库的密码为kkk123456,密码存储在文件 /home/greg/ansible/secret.txt 中
十四、创建用户账户
从 http://materials/user_list.yml 下载要创建的用户的列表,并将它保存到**/home/greg/ansible**
在本次考试中使用在其他位置创建的密码库 /home/greg/ansible/locker.yml,
创建名为**/home/greg/ansible/users.yml** 的 playbook,
从而按以下所述创建用户帐户:
职位描述为 developer 的用户应当:
在 dev 和 test 主机组中的受管节点上创建
从 pw_developer 变量分配密码
是补充组 devops 的成员
新增要求设置密码有效期为30天
职位描述为 manager 的用户应当:
在 prod 主机组中的受管节点上创建
从 pw_manager 变量分配密码
是附加组 opsmgr 的成员
新增要求设置密码有效期为30天
密码应采用 SHA512 哈希格式。
您的 playbook 应能够在本次考试中使用在其他位置创建的库密码文件**/home/greg/ansible/secret.txt** 正常运行
十五、更新Ansible库的密钥
按照下方所述,更新现有 Ansible 库的密钥:
从http://materials/salaries.yml 下载 Ansible 库到 /home/greg/ansible
当前的库密码为 AAAAAAAAA
新的库密码为 BBBBBBBBB
库使用新密码保持加密状态
十六、编写playbook创建cron计划任务
编写名cron.yml的playbook,在指定dev主机组上运行
基于alice用户创建cron任务
每隔两分钟执行logger “hello rhce”