【问题标题】:Break ansible k/v variable with hasicorp vault loop logic in value在值中使用 hashcorp vault 循环逻辑破坏 ansible k/v 变量
【发布时间】:2020-01-19 18:55:36
【问题描述】:

有人可以帮我看看是否可以用循环逻辑来破坏 ansible 变量的值吗? 假设我在 group_vars yaml 中的 value 中有 hashcorp vault 的循环逻辑变量,如下所示:

     some_value: "{{ lookup('hashi_vault', 'secret=secret/hello:value auth_method=userpass username=myuser password=mypas url=http://myvault:8200') | default(‘something’, true)}}"

我试图让这看起来更具可读性,就像这样:

some_value: >- "{{ lookup('hashi_vault', 
               'secret=secret/hello:value 
                auth_method=userpass 
                username=myuser password=mypas 
                url=http://myvault:8200') | default(‘something’, true)}}"

使用 >| 选项打破循环线。但是这种方式将所有循环查询转换为字符串,并作为句子粘贴在调试中。

有什么想法可以在不破坏逻辑的情况下换行吗?

【问题讨论】:

    标签: python ansible yaml


    【解决方案1】:

    非常简短(有关详细信息,请参阅下面的文档)

    > 是 yaml 折叠标量块标记。它需要一个从下一行开始的带有缩进的字符串。行尾的单个新行将转换为空格。空行将保留为新行字符

    - 是标量块的“末尾无新行”咀嚼指示器。

    您的表达式可能会转换为折叠块:

    some_value: >-
      {{
      lookup('hashi_vault', 
      'secret=secret/hello:value 
      auth_method=userpass 
      username=myuser
      password=mypas 
      url=http://myvault:8200')
      | default(‘something’)
      }}
    

    有很多可能的变化。

    同时,为了使其更具可读性,我会将其分成两个不同的变量。

    hv_params: >-
      secret=secret/hello:value 
      auth_method=userpass 
      username=myuser
      password=mypas 
      url=http://myvault:8200
    
    some_value: "{{ lookup('hashi_vault', hv_params) | default('something') }}"
    

    参考:

    【讨论】:

    • 您的原始查找定义是否获得了预期值?以上是那条线的确切翻译(除非我眼前有什么我看不到的东西......)
    • 我的错。忘记了默认值的标志“true”。
    猜你喜欢
    • 2011-03-24
    • 2011-06-14
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多