Ansible 如何将变量添加到前缀路径?
表2.3 代码如下:Ansible 如何将变量添加到前缀路径?,ansible,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 当:时,前
- 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
当:时,前缀:和
是否可以避免双引号(”
)呢?如果字符串始终使用双引号,则可以避免许多常见错误。例如,这:
somestring: yes
实际上不会将somestring
设置为字符串值yes
(您实际上得到的是布尔值true
)。这是:
somestring: 12:34
不会将somestring
设置为字符串值12:34
(您实际上会得到754
)。换句话说,在许多情况下,您可能不希望使用双引号,因此当您有字符串值时,最好使用双引号
关于你的具体问题:
前缀:
的值不需要双引号。这很好:
- name: List keys simple
s3:
bucket: mybucket
mode: list
prefix: /{{a}}/{{b}}/tmp/
register: foo
这是因为该值不以与YAML有任何特殊会议的字符开头
另一方面,您需要在when:
语句中使用双引号,因为该值以{
开头,这在YAML中表示字典的开头。为什么您关心双引号?@larsks因为我不想使用双引号,当我不需要它时,花括号之间的空格呢?{{a}
或{{a}
这两个表达式是相同的。