安装 RHEL 系统角色软件包,并创建符合以下条件的 playbook /home/greg/ansible/timesync.yml:
在所有受管节点上运行使用 timesync 角色配置该角色,以使用当前有效的 NTP 提供商配置该角色,以使用时间服务器 172.25.254.254配置该角色,以启用 iburst 参数详细解析根据题目要求,首先安装 RHEL 系统角色软件包,该软件包内含有一系列 Ansible 角色和模块。以下两条命令都可以安装 RHEL 系统角色软件包(需要使用 root 用户或 root 权限安装):
sudo yum -y install rhel-system-rolessudo yum -y install rhel-system-roles.noarch执行上述命令后,安装的 Ansible 角色一般会放在 /usr/share/ansible/roles/ 目录下。在本题,我们需要用到的是 rhel-system-roles.timesync 这个角色。
进入到 rhel-system-roles.timesync 这个目录下(完整路径为:/usr/share/ansible/roles/rhel-system-roles.timesync),可以找到名为 README.md 的帮助文档,在该文档中,我们可以找到编写相应的 playbook 的示例,如下:
Example Playbook----------------Install and configure ntp to synchronize the system clock with three NTP servers:```yaml- hosts: targets vars:timesync_ntp_servers: - hostname: foo.example.comiburst: yes - hostname: bar.example.comiburst: yes - hostname: baz.example.comiburst: yes roles:- rhel-system-roles.timesync接着,我们需要把 /usr/share/ansible/roles/ 目录下的 rhel-system-roles.timesync 这个角色复制到 RHCE8 考试第一题中创建的角色目录 /home/greg/ansible/roles 中的 timesync 目录中去:
cp -r /usr/share/ansible/roles/rhel-system-roles.timesync/ /home/greg/ansible/roles/timesync接下来,我们在该示例的基础上修改一下,就可以完成本题中 playbook 的编写。
首先,新建题目要求的 playbook:
vim /home/greg/ansible/timesync.yml接着,根据题目要求,写出如下 playbook 并保存(先把上面提到的示例复制进来再根据题目要求修改):
---- name: hosts: all vars:timesync_ntp_servers: - hostname: 172.25.254.254iburst: yes roles:- timesync上面的 playbook 执行的时候,在 Disable(关闭)一些服务的时候会产生一些被 Ansible 自动 ignore(忽略)的红色报错,这样的报错并不是说我们的 playbook 写的有问题,可以直接忽视。
上面的 playbook 执行完毕之后,NTP 时间同步会自动完成。当然,我们也可以使用如下命令在所有受控节点上同步时间:
ansible all -m command -a 'chronyc sources -v'接下来使用如下命令在所有节点上验证一下 NTP 服务是否正常,只要返回的结果包含 NTP service: active 即可:
ansible all -m command -a 'timedatectl'