3.5 使用AWX自动化日常任务
AWX有一个特别的方面,即日常任务的自动化。Ansible可以处理的日常任务包括在服务器运行修补程序,运行某种符合性检查或审计,或者强制执行安全策略。
例如,可以编写一个Ansible剧本来确保SSH守护进程不允许远程root用户登录,因为这被认为是一种良好的安全实践。当然,任何具有root权限的系统管理员都可以轻松地登录并重新打开它。但是,定期运行Ansible剧本来关闭它会强制执行它,并确保没有人会重新打开它。Ansible修改的幂等性意味着,在配置已经到位的地方,Ansible不会进行任何更改,因此运行剧本是安全的,是占用系统资源少且无中断的。
如果希望在命令行上使用Ansible执行此操作,则需要创建一个cron作业来定期运行ansible-playbook命令以及所有必需的参数。这意味着在处理自动化的服务器上安装SSH私钥,并且意味着你必须定期跟踪哪些服务器正在运行Ansible。这对于一个企业来说并不理想,因为在企业中,良好的实践的代名词是自动化并可以确保一切都保持平稳运行。
幸运的是,在这方面AWX也能帮助我们。为了保持这个例子的简洁,我们将重用本章上一节中的LAMP软件栈例子。在这种情况下,我们可能希望当一切正常时,安排一个一次性安装LAMP软件栈的计划,而对于一个例行的任务,这将在一个持续运行的基础上执行。
要设置此模板的计划,请执行以下步骤:
1.单击左侧菜单栏上的Templates。
2.单击先前创建的模板。
3.单击窗格顶部的SCHEDULES(计划)按钮。
4.单击绿色+图标向其添加新的计划。
5.设置适当的开始日期和时间,在此设置从现在起几分钟,以便演示它的效果。
6.另外,设置适当的时区。
7.最后,在本例中选择REPEAT FREQUENCY(重复频率),在此选择None (run once)(无,运行一次),但请注意,下拉列表中提供了其他的持续选项。
8.单击绿色的SAVE按钮以激活计划。
完成上述步骤后,生成的配置屏幕如图3-13所示。
图 3-13
现在,如果查看Jobs窗格,你应该会看到模板在计划的时间开始运行。在分析已完成(或确实正在运行)的任务时,你应该看到它是按先前创建的计划的名称启动的,而不是按用户账户(如admin)的名称启动的(如我们手动启动它时所看到的)。图3-14显示了一个由我们在本节前面创建的Scheduled install计划启动的已完成任务的示例。
图 3-14
如果想查看AWX实例上即将出现的所有计划任务,只需单击左侧菜单栏上的Schedules菜单项,就会加载一个屏幕,列出AWX实例中所有配置的时间表。对于熟悉Linux管理的人来说,这类似于列出cron任务。图3-15显示了这样一个屏幕的示例。
图 3-15
这为你提供了创建的所有计划的简明概述,而无须进入各个配置项中进行编辑。
通过这种方式,AWX不仅支持Linux环境的交互式自动化,而且还支持无须操作的自动化计划任务,从而提高了自动化解决方案的能力和灵活性。
希望这个概述能让你了解像AWX或Ansible Tower这样的工具可以给你的企业带来的好处,以及为什么用它来辅助Ansible自动化是有益的。