本文是红帽RHCE考题的总结,个别题目写了多种步骤。
一、安装和配置ansible
题目:
按照下方所述,在控制节点 bastion.lab.example.com 上安装和配置 Ansible:
- 安装所需的软件包
- 创建名为/home/devops/ansible/inventory 的静态清单文件,以满足以下要求:
- servera 是 dev 主机组的成员
- serverb 是 test 主机组的成员
- serverc 和 serverd 是 prod 主机组的成员
- workstation 是 balancers 主机组的成员
- prod 组是 webservers 主机组的成员
- 创建名为/home/devops/ansible/ansible.cfg 的配置文件,以满足以下要求:
- 主机清单文件为/home/devops/ansible/inventory
- playbook 中使用的角色的位置包括/home/devops/ansible/roles
步骤:
1、普通用户登录控制节点
2、使用sudo安装ansible
[devops@bastion ~]$ sudo yum install -y ansible
3、创建名为/home/devops/ansible/inventory 的静态清单文件。
[devops@bastion ~]$ mkdir -p ansible/roles && cd ansible/
[devops@bastion ansible]$ vim inventory
[dev]
servera
[test]
serverb
[prod]
serverc
serverd
[balancers]
workstation
[webservers:children]
prod
4、创建名为/home/devops/ansible/ansible.cfg 的配置文件(从默认配置文件/etc/ansible/ansible.cfg复制过来一份直接修改)
[devops@bastion ansible]$ vim ansible.cfg
[defaults]
inventory = /home/devops/ansible/inventory
roles_path = /home/devops/ansible/roles
remote_user = devops
host_key_checking = no
[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False
5、验证ansible的配置文件路径和查看主机清单,正确则此题做完。
[devops@bastion ansible]$ ansible --version
[devops@bastion ansible]$ ansible-inventory --graph
二、创建和运行ansible临时命令
题目:
作为系统管理员,您需要在受管节点上安装软件。
请按照下方所述,创建一个名为/home/devops/ansible/adhoc.sh 的 shell 脚本,该脚本将使用Ansible 临时命令在各个受管节点上安装 yum 存储库。
存储库 1:
存储库的名称为:EX294_BASE
描述为:EX294 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:
存储库的名称为:EX294_STREAM
描述为:EX294 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
存储库状态为:启用状态
步骤:
1、创建一个名为/home/devops/ansible/adhoc.sh 的 shell 脚本。(此题需要用到yum_repository模块,使用ansible临时命令的-m参数指定模块,使用-a参数指定模块参数,使用ansible-doc查看模块的使用方法,把命令模板直接复制到文件中,无需死记命令)
(1)yum_repository模块命令记不住。可以使用ansible-doc -l命令列出所以模块,过滤yum即可。
(2)然后使用ansible手册详细查看ansible-doc yum_repository
直接翻到后面查看实例:
(3)编写配置文件
2、给脚本执行权限,运行脚本测试
[devops@bastion ansible]$ chmod +x adhoc.sh
[devops@bastion ansible]$ ./adhoc.sh
三、安装软件包
题目:
创建一个名为/home/devops/ansible/packages.yml 的 playbook:
-
将 php 和 mariadb 软件包安装到 dev、test 和 prod 主机组中的主机上。(servera——serverd)
-
将 RPM Development Tools 软件包组安装到 dev 主机组中的主机上。(servera)
-
将 dev 主机组中主机上的所有软件包更新为最新版本。(servera)
步骤:
1、此题需要用到yum模块,只需要用到它的两个参数name:包名,state:latest安装最新包。此题先将hosts中的所有主机写上,然后在tasks中写入when语句,按条件执行。
注意最后一个任务的yum参数有state:latest,前面两个任务也可以加上这个参数。when语句用到的两个变量,inventory_hostname指的是所有的主机,groups[‘dev’]指的是所有的主机和组中的dev组的主机。所以此题的when语句就表示所有主机中在dev组的主机执行任务。
四、使用RHEL系统角色
题目:
安装 RHEL 系统角色软件包,并创建名称为/home/devops/ansible/timesync.yml,符合以下条件的 playbook:
-
在所有受管节点上运行
-
使用 timesync 角色
-
配置该角色,以使用当前有效的 NTP 提供商
-
配置该角色,以使用时间服务器172.25.250.254
-
配置该角色,以启用 iburst 参数
步骤:
1、安装rhel系统角色软件包。
[devops@bastion ansible]$ sudo yum install -y rhel-system-roles
2、将下载的角色中的timesync角色复制到ansible/roles目录中;并改名为timesync
3、查看所有已安装的角色
4、查看timesync角色的使用方法。
5、创建名称为/home/devops/ansible/time