目录
RHCE认证考的是:ansible的内容
重要信息配置:
root的根密码已经设置为redhat
除非另有指定,否则您的所有工作(包括Ansible playbook.配置文件和主机清单等) 应当保存在控制节点上的目录/home/devops/ansible中,并且
应当归devops用户所有。所有Ansible相关的命命应当由devops 用户从Ansible 控制节点上的这个目录运行。
注意:
等第一题做完之后可以执行
ansible all -m setup > setup.txt
后面的题目需要用到主机的信息变量的时候,就可以通过vim setup.txt进行查找
eg:
1.先把主机信息导入到setup.txt
2.vim setup.txt 进行查找
一、安装和配置Ansible
安装和配置Ansible按照下方所述,在控制节点workstation上安装和配置Ansible
安装所需的软件包
创建名为/home/devops/ansible/inventory 的主机清单文件,以满足以下要求:
node1 是dev 主机组的成员 node2 是test 主机组的成员
node3 和node4 是prod 主机组的成员
node5 是balancers 主机组的成员 prod 组是webservers 主机组的成员
创建名为/home/devops/ansible/ansible.cfg 的配置文件,以满足以下要求:
主机清单文件为/home/devops/ansible/inventoryplaybook 中使用的角色的位置包括/home/devops/ansible/roles
答案:
1.切换到devops用户,必须要用ssh切换
2.安装ansible,加sudo提权限
3.配置inventory文件
4.配置ansible.cfg文件
5.创建roles目录
6.测试是否配置成功
二、创建和运行Ansible 临时命命
作为系统管理员,您需要在受管节点上安装软件。
请按照正文所述,创建一个名为/home/devops/ansible/adhoc.sh 的shell 脚本,该脚本将使用Ansible 临时命命在各个受管节点上安装yum 存储库:
存储库1:
存储库的名称为EX294BASE
描述为EX294 base software
基础URL为 http://contentexample.com/rhel8.2/x86 64/dvd/BaseOS
GPG 签名检查为启用状态
GPG密钥URL为 http://content.example.com/rhel8.2/x8664/dvd/RPM-GPG-KEY-redhat-release
存储库为启用状态
存储库2:
存储库的名称为EX294STREAM
描述为EX294stream software
基础URL为http://contentexample.com/rhel8.2/x8664/dvd/AppStream
GPG 签名检查为启用状态
GPG密钥URLhttp://content.example.com/rhel8.2/x8664/dvd/RPM-GPG-KEY-redhat-release
存储库为启用状态
答案:
1.编辑adhoc.sh脚本
2.为脚本添加执行权限
3.执行脚本
三、安装软件包
创建一个名为/home/devops/ansible/packages.yml的playbook :
将php 和mariadb 软件包安装到dev、test 和prod 主机组中的主机上
将RPM Development Tools 软件包组安装到dev 主机组中的主机上
将dev主机组中主机上的所有软件包更新为最新版本
答案:
1.编辑packages.yml的playbook文件
2.执行playbook文件
四、使用RHEL系统角色
timesync
安装RHEL 系统角色软件包,并创建符合以下条件的playbook
/home/devops/ansible/timesync.yml:
在所有受管节点上运行
使用timesync角色
配置该角色,以使用当前有效的NTP 提供商
配置该角色,以使用时间服务器172.25.250.250配置该角色,以启用iburst 参数
答案:
1.安装系统角色软件包
2.拷贝timesync的playbook文件到ansible目录下
3.拷贝timesync角色到ansible目录中roles下
4.修改timesync.yml配置文件
5.执行playbook
SELinux
安装RHEL 系统角色软件包,并创建符合以下条件的playbook
/home/devops/ansible/selinux.yml注:无论是否考到,此题为必须掌握题!
在所有受管节点上运行
使用selinux角色
将SELINUX设置为强制模式
答案:
1.拷贝selinux的playbook文件到ansible目录下
2.拷贝selinux角色到ansible目录中roles下
3.修改selinux.yml配置文件
(底下还有一处要修改成红色框框这样)
4.执行playbook
五、使用Ansible Galaxy 安装角色
创建并使用名称为/home/devops/ansible/roles/requirements.yml的playbook,下载并安装Ansible Galaxy角色。从下列URL下载:
http://content.example.com/materials/haproxy.tar 此角色的名称应当为balancer
http://content.example.com/materials/phpinfo.tar 此角色的名称应当为phpinfo
答案:
1.编辑requirements.yml 配置文件
2.执行ansible角色安装
六、创建使用角色
根据下列要求,在/home/devops/ansible/roles 中创建名为apache的角色
httpd 软件包已安装,设为在系统启动时启用并启动防火墙已启用并正在运行,并使用允许访问Web 服务器的规则.
模板文件为index.html.j2,用于创建具有以下输出的文件/var/www/html/index.html
Welcome to HOSTNAME on IPADDRESS
其中,HOSTNAME 是受管节点的完全限定域名,IPADDRESS 则是受管节点的IP 地址。
创建名为/home/devops/ansible/newroles.yml的playbook,
使用这个角色,对webservers 组进行操作。
HOSTNAME 是FQDN 的完整主机名称
答案:
1.安装apache角色
2.编辑apache角色的tasks任务
3.编辑apache角色的templates任务(即编辑index.html.j2配置文件)
4.编辑newroles.yml的playbook文件
5.执行playbook文件
七、从Ansible Galaxy 使用角色
根据下列要求,创建一个名为/home/devops/ansible/roles.yml的playbook:
playbook 中包含一个play,该play 在balancers 主机组中的主机上运行并将使用balancer角色。
此角色配置一项服务,以在webservers 主机组中的主机之间平衡Web服务器请求的负载。
浏览到balancers 主机组中的主机 (例如http://172.25.250.14)将生成以下输出
Welcome to node3lab.example.com on172.25.250.12
重新加载浏览器将从另一Web 服务器生成输出
Welcome to node4.lab.example.com on172.25.250.13
playbook 中包含一个play,该play 在webservers 主机组中的主机上运行并将使用phpinfo角色。
请通过URL /hello.php 浏览到webservers 主机组中的主机将生成以下输出:
Hello PHP World from FQDN
其中,FQDN 是主机的完全限定名称。
Hello PHP World from node3.lab.example.com
另外还有PHP配置的各种详细信息,如安装的PHP版本等。
同样,浏览到http://172.25.250.12/hello.php 会生成以下输出:
Hello PHP World from node3.lab.example.com
答案:
1.编辑roles.yml的playbook文件
2.执行playbook文件
八-A 创建和使用逻辑卷
创建一个名为/home/devops/ansible/lv.yml的playbook,它将在所有受管节点上运行以执行下列任务
创建符合以下要求的逻辑卷
逻辑卷创建在research 卷组中
逻辑卷名称为data
逻辑卷大小为1500MiB
使用ext3文件系统格式化逻辑卷
(注:以实际考试要求为准)
如果无法创建请求的逻辑卷大小,应显示错误信息Could not create logical volume of that size并且应改为使用大小800MiB
如果卷组research 不存在,应显示错误信息:Volume group done not exist
不要以任何方式挂载逻辑卷
答案:
1.编辑lv.yml的playbook文件
2.执行playbook文件
八-B 创建并使用磁盘分区
创建名为/home/devops/ansible/partition.yml的playbook在balancers组机上的vdc创建分区,分区编号为1,大小为1500M
使用ext4文件系统进行格式化(注:实际格式以考试要求为准)
将文件系统挂载到/newpart在vdd上创建分区,分区编号为1,大小为1500M使用ext4文件系统进行格式化
将文件系统挂载到/adcd
如果分区创建不成功,产生报错信息:Could not create partation of that size则创建分区大小变成800MiB
如果磁盘不存在,产生报错信息
Disk does not exist
答案:
1.编辑partition.yml的playbook文件
2.执行playbook文件
九、生成主机文件
将一个初始模板文件从http://content.example.com/materials/hostsj2 下载到/home/devops/ansible完成该模板,以便用它生成以下文件
针对每个清单主机包含一行内容,其格式与/etc/hosts 相
创建名为/home/devops/ansible/hosts.yml的playbook,
它将使用此模板在dev主机组中的主机上生成文件/etc/myhosts 。
该playbook 运行后,dev 主机组中主机上的文件/etc/myhosts应针对每个受管主机包含一行内容:
127.0.0.1 localhost localhost.localdomainocalhost4 localhost4.localdomain4 ::1localhost
ocalhost.localdomain localhost6localhost6.localdomain6
172.25.250.10 node1.lab.example.com node1172.25.250.11 node2.lab.example.com node2172.25.250.12 node3.lab.example.com node3172.25.250.13 node4.lab.example.com node1172.25.250.14 node5.lab.example.com node5
答案:
1.下载hosts.j2文件
2.按要求编辑hosts.j2文件
3.编辑hosts.yml的playbook文件
4.执行playbook文件
十、修改文件内容
按照下方所述,创建一个名为/home/devops/ansible/issue.yml的playbook :
该playbook将在所有清单主机上运行该playbook会将/etc/issue 的内容替换为下方所示的一行文本:
在dev 主机组中的主机上,这行文本显示为:Development
在test 主机组中的主机上,这行文本显示为:Test在prod主机组中的主机上,这行文本显示为:Production
答案:
1.编辑issue.yml的playbook文件
2.执行playbook文件
十一、创建Web内容目录
按照下方所述,创建一个名为/home/devops/ansible/webcontent.yml的playbook
该playbook 在dev主机组中的受管节点上运行创建符合下列要求的目录/webdev
所有者为webdev 组
具有常规权限
owner=read+write+executegroup=read+write+executeother=read+execute
具有特殊权限:设置组ID
用符号链接将/var/www/html/webdev 链接到/webdev创建文件/webdev/index.html,其中包含如下所示的单行文件: Development
在dev 主机组中主机上浏览此目录 (例如http://172.25.250.1/webdev/) 将生成以下输出:Development
答案:
1.编辑webcontent的playbook文件
2.执行playbook文件
十二、生成硬件报告
创建一个名为/home/devops/ansible/hwreport.yml的playbook,它将在所有受管节点上生成含有以下信息的输出文件/root/hwreport.txt
主机名称
以MB表示的总内存大小
BIOS 版本
磁盘设备vda的大小
磁盘设备vdc的大小
(注:需要生成的设备名称以考试要求为准)输出文件中的每一行含有一个key:value 对。
您的playbook 应当
队http://content.example.com/materials/hwreport.empty 下载文件,并将它保存为/root/hwreport.txt
使用正确的值改为/root/hwreporttxt如果硬件项不存在,相关的值应设为NONE
答案:
1.编辑hwreport的playbook文件
2.执行playbook文件
十三、创建密码库
按照下方所述,创建一个Ansible 库来存储用户密码库名称为/home/devops/ansible/locker.yml库中含有两个变量,名称如下:
pw_developer,值为redhatpw_manager,值为redhat
用于加密和解密该库的密码为redhat密码存储在文件/home/devops/ansible/secret.txt 中
答案:
1.编辑locker的playbook密码库文件
2.编辑secret.txt的密码存储文件
3.为playbook加密
十四-A 创建用户户
从http://content.example.com/materials/user list1.yml下载要创建的用户的列表,并将它保存到/home/devops/ansible
在本次考试中使用在其他位置创建的密码库/home/devops/ansible/locker.ymlo
创建名为/home/devops/ansible/users1.yml的playbook从而按以下所述创建用户帐户:
职位描述为developer的用户应当:
在dev 和test 主机组中的受管节点上创建
从pw_developer变量分配密码
是附属组devops的成员密码采用SHA512哈希格式。
职位描述为manager的用户应当
在prod主机组中的受管节点上创建
从pw_manager变量分配密码
是附属组opsmgr的成员密码采用SHA512哈希格式。
您的playbook应能够在本次考试中使用在其他位置创建的库密码文件/home/devops/ansible/secret.txt 正常运行。
答案:
1.下载user_list1.yml用户列表文件
2.创建users1的playbook文件
3.执行playbook文件
十四-B 创建用户
从http://content.example.com/materials/user list2.ym下载要创建的用户的列表,并将它保存到/home/devops/ansible
在本次考试中使用在其他位置创建的密码库/home/devops/ansible/locker.yml。
创建名为/home/devops/ansible/users2yml的playbook从而按以下所述创建用户帐户:
职位描述为developer的用户应当:
在dev 和test 主机组中的受管节点上创建
从pw_developer变量分配密码
是附属组devops的成员
密码采用SHA512哈希格式。
设置密码有效期为30天
职位描述为manager的用户应当
在prod 主机组中的受管节点上创建从pw_manager变量分配密码是附属组opsmgr的成员
密码采用SHA512哈希格式。
您的playbook应能够在本次考试中使用在其他位置创建的库密码文件/home/devops/ansible/secrettxt 正常运行。
答案:
1.下载user_list2.yml用户列表文件
2.创建users2的playbook文件
3.执行playbook文件
十四-C 创建用户
从http://content.example.com/materials/user ist3.yml下载要创建的用户的列表,并将它保存到/home/devops/ansible
在本次考试中使用在其他位置创建的密码库/home/devops/ansible/locker.yml 。
创建名为/home/devops/ansible/users3.yml的playbook从而按以下所述创建用户帐户:
职位描述为developer的用户应当:
在dev 和test主机组中的受管节点上创建
从pw_developer 变量分配密码
是附属组devops 的成员密码采用SHA512 哈希格式。创建用户设置密码有效期
职位描述为manager的用户应当
在prod 主机组中的受管节点上创建从pw_manager 变量分配密码是附属组opsmgr的成员
密码采用SHA512哈希格式。创建用户设置密码有效期
答案:
1.下载user_list3.yml用户列表文件
2.创建users3的playbook文件
3.执行playbook文件
十五、更新Ansible库的密钥
按照下方所述,更新现有Ansible库的密钥
从http://content.example.com/materials/salaries.yml下载Ansible 库到/home/devops/ansible
当前的库密码为insecuresure
新的库密码为redhat
库使用新密码保持加密状态
答案:
1.下载salaries.yml文件
2.更新salaries文件密码
十六、配置cron任务
按照下方所述,配置cron任务
创建一个名为 /home/devops/ansible/cron.yml的playbook在test主机组中执行
配 cron 作业,该作业每隔2 分钟运行并执行以下以命合:
logger"EX294in progress”,以用户student身份运行
答案:
1.配置cron.yml的playbook文件
2.执行playbook文件
红帽认证RHCE所有题目到处结束
本文章仅限于学习,无商业用途
自己报班学习做的知识点,方便以后学习巩固