Ansible 2.3
下面是代码:
- name: List keys simple
s3:
bucket: mybucket
mode: list
prefix: "/{{a}}/{{b}}/tmp/"
register: foo
- name: when you need the result
debug:
msg: 'print this'
when: "{{foo.s3_keys |length}} > 0"
使用变量a
和b
的地方
我们可以避免对" "
和prefix:
使用双引号(when:
)吗?
答案 0 :(得分:2)
如果您始终对字符串使用双引号,则可以避免许多常见错误。例如,这:
somestring: yes
实际上不会将somestring
设置为字符串值yes
(实际上是布尔值true
)。这:
somestring: 12:34
不会将somestring
设置为字符串值12:34
(实际上得到的是754
)。换句话说,在许多您不希望出现的情况下,都需要双引号,因此最好在有字符串值时使用它们。
关于您的特定问题:
prefix:
的值不需要双引号。很好:
- name: List keys simple
s3:
bucket: mybucket
mode: list
prefix: /{{a}}/{{b}}/tmp/
register: foo
之所以可行,是因为该值不是以与YAML有任何特殊相遇的字符开头。
另一方面,您需要在when:
语句中使用双引号,因为该值以{
开头,在YAML中它表示字典的开头。