有几个剧本,我想向这些剧本添加相同的 pre_tasks 和 post_tasks 。所以我将 import_tasks 添加到剧本中。看起来像这样
---
- hosts: central
tasks:
- import_tasks: pre_tasks.yml
roles:
- do_something
become: no
Run Code Online (Sandbox Code Playgroud)
但我得到了这个错误
错误!包含的任务文件必须包含任务列表
如何将 pre_tasks 导入到剧本中,或者是否有更好的方法将 pre_tasks/post_tasks 应用于多个剧本?
您可以在 playbook 中导入 pre_tasks 或 post_tasks。
这是一个例子,其中我们有 playbook.yml 和 common.yml - 如果我们想将 common.yml 包含到 playbook.yml 中,那么这个例子展示了如何正确构建文件:
剧本.yml
- hosts: haproxy
pre_tasks:
- name: Import common tasks
import_tasks: 'common.yml'
tasks:
- debug:
msg: 'Hello from playbook.yml'
Run Code Online (Sandbox Code Playgroud)
common.yml(这是错误的,如果从问题中的脚本调用,将会重现您的错误)
pre_tasks:
- debug:
msg: 'Hello from common.yml'
Run Code Online (Sandbox Code Playgroud)
common.yml(正确的导入结构)
- debug:
msg: 'Hello from common.yml'
Run Code Online (Sandbox Code Playgroud)
所以关键是不要 在包含的文件中包含pre_tasksor指令。post_tasks这样做会产生与您提到的相同的错误
| 归档时间: |
|
| 查看次数: |
3365 次 |
| 最近记录: |