我在应该用YAML编写的ansible playbooks中一直阅读key1=value1 key2=value2
样式词典。另一方面,我没有找到任何这种格式的文档,似乎有些情况下它对我不起作用。什么是确切的规格,我在哪里可以找到它?
答案 0 :(得分:5)
在Ansible中key=value
一般不用于dicts。
这是将参数传递给操作/模块的替代语法,例如:
- name: restart apache
service: name=apache state=restarted
在此,您将name
和state
参数传递给service
模块。
从YAML角度来看name=apache state=restarted
是一个字符串。 Ansible在幕后做了一些神奇的事情来分裂它。但是对于复杂的参数,它变得不可靠和繁琐,所以我总是使用原生的YAML语法:
- name: restart apache
service:
name: apache
state: restarted
此key=value
仅适用于模块/操作参数,您无法像这样定义字典:
vars:
# this will give you a string, not dict
mydict: key1=value1 key2=value