是否有办法通过从CLI传递--extra-var
/ -e
来覆盖Ansible变量。问题是我想要覆盖的变量是一个列表,我无法弄清楚正确的语法。
以下是我的group_vars
文件中的变量:
my_variable:
- { var1: "value1", var2: "value2" }
...
以下是我的命令:
ansible-playbook -i inventory playbook.yml -e 'my_variable={ var1: value1, var2: value2 }' --limit 1.2.3.4 --diff --check
我收到以下错误:
致命:[1.2.3.4] => with_items需要一个列表或一组
这可能吗?我做错了什么?
答案 0 :(得分:1)
这是JSON,因此您需要将字典括在方括号中,以作为列表元素(JSON用语中的数组)传递。此外,您需要正确引用它:
<property name="dir" value="/path/to/dir" />
<!-- Set a property for consistency -->
<symlink action="delete" link="${dir}" />
<!-- If the file was a symlink, at this point it will be deleted. If it's a directory, nothing will have happened. -->
<delete dir="${dir.name}" />
<!-- If the file was a directory, it will now be deleted recursively. -->
<symlink resource="/path/to/some/other/dir" link="${dir}" />
<!-- Now the new symlink is created. -->