我经常不得不做类似的事情,我需要记录各个参数:
- name: foo # ...
module_name: # ...
arg1: 1 # ...
arg2: 2 # ...
bar: "bar" # explanation <---- related
baz: "baz" # explanation <---- related
qux: 42 # ...
如果参数相关,最好将它们分组。
我尝试了所有以下错误的语法:
arg1: 1 # ...
arg2: 2 # ...
bar: "bar" baz:"baz" # explanation
qux: 42 # ...
arg1: 1 # ...
arg2: 2 # ...
bar: "bar", baz: "baz" # explanation
qux: 42 # ...
arg1: 1 # ...
arg2: 2 # ...
bar="bar" baz="baz" # explanation
qux: 42 # ...
我略读了yaml 1.2 reference,但它出奇的复杂。
这可能吗?
但是也许您正在查看的内容可以使用缩写形式(as pointed out here)。
- name: foo # ...
module_name: { # ...
arg1: 1, # ...
arg2: 2, # ...
bar: "bar", baz: "baz", # explanation <---- related
qux: 42 # ...
}
这是由于YAML can be viewed as a natural superset of JSON。演示:
--- - hosts: localhost vars: module_name: # ... arg1: 1 # ... arg2: 2 # ... bar: "bar" # explanation <---- related baz: "baz" # explanation <---- related qux: 42 module_name_alt: { # ... arg1: 1, # ... arg2: 2, # ... bar: "bar", baz: "baz", # explanation <---- related qux: 42 } tasks: - debug: msg: "{{ module_name }}" - debug: msg: "{{ module_name_alt }}"
是否输出:
PLAY [localhost] *************************************************************** TASK [Gathering Facts] ********************************************************* ok: [localhost] TASK [debug] ******************************************************************* ok: [localhost] => { "msg": { "arg1": 1, "arg2": 2, "bar": "bar", "baz": "baz", "qux": 42 } } TASK [debug] ******************************************************************* ok: [localhost] => { "msg": { "arg1": 1, "arg2": 2, "bar": "bar", "baz": "baz", "qux": 42 } } PLAY RECAP ********************************************************************* localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0