【问题标题】:YAML: When an equals sign (=) can be used for dictionaries?YAML:什么时候等号(=)可以用于字典?
【发布时间】:2017-08-11 23:23:15
【问题描述】:

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

【问题讨论】:

标签: ansible yaml


【解决方案1】:

在 Ansible 中,key=value 通常不用于字典。

这是将参数传递给动作/模块的另一种语法,例如:

- 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 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 2016-01-08
    • 2020-01-09
    相关资源
    最近更新 更多