Ansible 我可以在剧本中导入或包含前任务或后任务吗?
有几个剧本,我想在这些剧本中添加相同的pre_任务和post_任务。因此,我将导入任务添加到剧本中。像这样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?您可以
---
- 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'