未定义变量的Ansible语法检查

未定义变量的Ansible语法检查,ansible,ansible-2.x,Ansible,Ansible 2.x,我有一本剧本,比如: myplaybook.yml --- - name: call another playbook hosts: 127.0.0.1 - include: "{{name}}-playbook.yml" when: name is defined 这里,我将cli中的'name'变量作为--extra-vars传递 它工作得很好。但是,当尝试使用下面的命令检查语法时,其给出的错误是名称未定义 Ansible-playbook --syntax myplaybook

我有一本剧本,比如: myplaybook.yml

---
- name: call another playbook
  hosts: 127.0.0.1

- include: "{{name}}-playbook.yml"
  when: name is defined
这里,我将cli中的'name'变量作为--extra-vars传递

它工作得很好。但是,当尝试使用下面的命令检查语法时,其给出的错误是名称未定义

Ansible-playbook --syntax myplaybook.yml

关于如何处理它有什么想法吗?

您想检查什么语法?如果你有很多剧本,比如
name1 playbook.yml
name2 playbook.yml
,Ansible如何猜出所有的名字并测试它们

如果只想测试其中一个,请为
name
设置默认值,如:

- include: "{{ name | default('name1') }}-playbook.yml"

为什么不将语法检查的名称也传递给
--extra vars
?实际上我做不到。语法检查由我无法控制的其他系统执行。有解决办法吗?