错误:任务不是一个合法的参数 - Ansible playbook

时间:2014-08-04 07:33:04

标签: ansible-playbook

在我的剧本中,我有一个条件包含语句来包含一个任务:

  tasks:
    # Install Java if not present
  - name: Execute Java
    shell: java -version
    register: result
    ignore_errors: True

  - include: tasks/java.yml
    when: result | failed
    ...

当我执行playbook时,它会发出错误:

user1@localhost:~ ansible-playbook tomcat.yml
ERROR: tasks is not a legal parameter in an Ansible task or handler

但是,当我用include或其他内容替换此shell语句时,playbook按预期运行.... Ansible docs告诉任务可以有条件地包含在内,为什么我在这里收到错误?

2 个答案:

答案 0 :(得分:16)

解决方案:您应该忽略"任务:"部分在包含文件中。

为什么会失败 当你包含时,你已经在任务部分,所以对于Ansible它看起来像:

- tasks:
    tasks:
      - name: https://www.digitalocean.com/pricing/
        ...

答案 1 :(得分:0)

当您定义"任务"在"任务"

如果您尝试包含其中包含任务定义的其他Playbook,则任务定义中的任务定义可能会发生。