我正在尝试遵循设计我的可视剧本的最佳实践。所以playbook文件本身看起来像这样:
- hosts: ...
roles:
- dbservers
- webservers
- ...
现在有一个任务check_proxy_and_firewalls
,我想在dbserers
和webservers
角色中执行。
我该如何正确地构建它?我找到的所有"best_practice"指南似乎都没有考虑到这种情况。
我可以简单地添加一个文件common_tasks/check_proxy_and_firewalls.yml
,并将其包含在我需要它的角色中。是这样做的吗?
重用来自其他剧本的任务的正确方法是使用include。
假设您希望在剧本或剧本之间重用任务列表。您可以使用包含文件来实现这一点。使用包含任务列表是定义系统将要完成的角色的好方法。
选自:Ansible Playbook Roles
要包含一个文件,只需将以下内容添加到剧本中:
- include: path/to/task.yml
构建你的角色很大程度上取决于你使用Ansible做什么。例如,我管理Windows和Linux服务器,所以我的角色结构如下:
roles
windows
<some_function>
tasks
vars
linux
<some_function>
tasks
vars