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

Pav*_*rda 2 yaml ansible

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

Kon*_*rov 6

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

它是将参数传递给actions/modules的替代语法,例如:

- name: restart apache
  service: name=apache state=restarted
Run Code Online (Sandbox Code Playgroud)

在这里,您传递namestate参数service模块.

从YAML角度来看name=apache state=restarted是一个字符串.Ansible在幕后做了一些神奇的事情来分裂它.但是对于复杂的参数,它变得不可靠和繁琐,所以我总是使用原生的YAML语法:

- name: restart apache
  service:
    name: apache
    state: restarted
Run Code Online (Sandbox Code Playgroud)

这只key=value适用于模块/动作参数,你不能像这样定义字典:

vars:
  # this will give you a string, not dict
  mydict: key1=value1 key2=value 
Run Code Online (Sandbox Code Playgroud)