当角色之间共享任务时,如何正确地构建我的可视剧本



我正在尝试遵循设计我的可视剧本的最佳实践。所以playbook文件本身看起来像这样:

- hosts: ...
roles:
 - dbservers
 - webservers
 - ...

现在有一个任务check_proxy_and_firewalls,我想在dbsererswebservers角色中执行。

我该如何正确地构建它?我找到的所有"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

最新更新