如何添加变量到前缀路径?

时间:2019-08-16 15:20:13

标签: 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" 

使用变量ab的地方

我们可以避免对" "prefix:使用双引号(when:)吗?

1 个答案:

答案 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中它表示字典的开头。