有几本剧本,我想在这些剧本中添加相同的pre_tasks和post_tasks。所以我将import_tasks添加到剧本中。看起来像这样
---
- hosts: central
tasks:
- import_tasks: pre_tasks.yml
roles:
- do_something
become: no
但是我遇到了这个错误
错误!包含的任务文件必须包含任务列表
我如何将pre_tasks导入到剧本中,还是有更好的方法将pre_tasks / post_tasks应用于多个剧本?
答案 0 :(得分:0)
您可以在剧本中导入前任务或后任务。
这是一个包含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 (这是错误的,如果从类似问题的脚本中调用会重现您的错误)
pre_tasks:
- debug:
msg: 'Hello from common.yml'
common.yml (正确的导入结构)
- debug:
msg: 'Hello from common.yml'
因此,关键是不要在包含的文件中包含pre_tasks
或post_tasks
伪指令。这样做会产生您提到的相同错误