在include语句中出现一些错误。我有两个简单的剧本,但找不到问题。
files.yml:
---
- name: create leading path
file:
path: "{{ path }}"
state: directory
- name: touch the file
file:
path: "{{ path + '/' + file }}"
state: touch
include.yml:
---
- name: touch files
hosts: localhost
gather_facts: false
tasks:
- include: files.yaml
path: /tmp/foo
file: herp
如果我运行include.yml
,则会出现此错误:
错误!冲突的动作陈述:包含,文件
错误似乎出在'/home/ansible/mastering_ansible/touch.yml'中:第7行,第13列,但可能 根据确切的语法问题放在文件的其他位置。
违规行似乎是:
tasks:
- include: files.yml
^ here
答案 0 :(得分:0)
模块include仅是“自由格式”,即没有属性。错误是错误语法造成的
tasks:
- include: files.yaml
path: /tmp/foo
file: herp
正确
tasks:
- include: files.yaml
如果您在使用路径时遇到问题,请参见Search paths in Ansible,并可以选择使用Special variables。例如
- include: "{{ playbook_dir }}/tasks/files.yaml"
注释
/home/ansible/mastering_ansible/touch.yml': line 7, column 13 ...
”,但已发布的代码中没有touch.yml。如果模块 include 具有属性 path 和 file ,则正确的缩进应该是
- include: files.yaml
path: /tmp/foo
file: herp