YAML:当等号(=)可用于词典时?

时间:2017-03-20 15:33:21

标签: ansible yaml

我在应该用YAML编写的ansible playbooks中一直阅读key1=value1 key2=value2样式词典。另一方面,我没有找到任何这种格式的文档,似乎有些情况下它对我不起作用。什么是确切的规格,我在哪里可以找到它?

1 个答案:

答案 0 :(得分:5)

在Ansible中key=value一般不用于dicts。

这是将参数传递给操作/模块的替代语法,例如:

- name: restart apache
  service: name=apache state=restarted

在此,您将namestate参数传递给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