Ansible YAML:什么时候可以在字典中使用等号(=)呢?

Ansible YAML:什么时候可以在字典中使用等号(=)呢?,ansible,yaml,Ansible,Yaml,我一直在阅读ansible剧本中的风格词典,这些剧本应该是用YAML编写的。另一方面,我没有找到任何关于这种格式的文档,而且似乎有些情况下它对我不起作用。确切的规格是什么?我在哪里可以找到它?在Ansiblekey=value中通常不用于DICT 将参数传递给操作/模块是另一种语法,如: - name: restart apache service: name=apache state=restarted 在这里,您将名称和状态参数传递给服务模块 从YAML的角度来看,name=apach

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

在Ansible
key=value
中通常不用于DICT

将参数传递给操作/模块是另一种语法,如:

- name: restart apache
  service: name=apache state=restarted
在这里,您将
名称
状态
参数传递给
服务
模块

从YAML的角度来看,
name=apachestate=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 
您不能在YAML中这样做,因为它不在YAML规范中。但您当然可以在非引号标量字符串中包含
=
。应用程序在加载后如何解释该字符串与YAML无关