Ansible 我可以在剧本中导入或包含前任务或后任务吗?

Ansible 我可以在剧本中导入或包含前任务或后任务吗?,ansible,Ansible,有几个剧本,我想在这些剧本中添加相同的pre_任务和post_任务。因此,我将导入任务添加到剧本中。像这样 --- - hosts: central tasks: - import_tasks: pre_tasks.yml roles: - do_something become: no 但我犯了这个错误 错误!包含的任务文件必须包含任务列表 如何将pre\u任务导入到playbook,或者是否有更好的方法将pre\u任务/post\u任务应用到多个playbook?您可以

有几个剧本,我想在这些剧本中添加相同的pre_任务和post_任务。因此,我将导入任务添加到剧本中。像这样

---
- hosts: central
  tasks:
  - import_tasks: pre_tasks.yml
  roles:
  - do_something
  become: no
但我犯了这个错误

错误!包含的任务文件必须包含任务列表


如何将pre\u任务导入到playbook,或者是否有更好的方法将pre\u任务/post\u任务应用到多个playbook?

您可以在playbook中导入pre\u任务或post\u任务

下面是一个示例,其中我们有playbook.yml和common.yml-如果我们想将common.yml包含到playbook.yml中,那么这个示例将展示如何正确地构造文件:

playbook.yml

- hosts: haproxy  
  pre_tasks: 
  - name: Import common tasks
    import_tasks: 'common.yml'

  tasks:  
  - debug:
      msg: 'Hello from playbook.yml'
common.yml(这是错误的,如果从问题中的脚本这样的脚本调用,将重现错误)

common.yml(正确的导入结构)


因此,关键是不要在包含的文件中包含
pre_tasks
post_tasks
指令。这样做会产生与您提到的相同的错误

您最好将这些任务换成另一个角色。您的问题是什么?你不明白这个错误吗?文件pre_tasks.yml“必须包含任务列表”。更好的方法?用于什么用例?有许多任务、剧本和角色。
pre_tasks:
  - debug: 
      msg: 'Hello from common.yml'
- debug: 
    msg: 'Hello from common.yml'