盐:支柱数据的属性?

盐:支柱数据的属性?

我想要获得来自 saltstack pillars 的数据的属性(计算属性):

我们的系统结构如下:

systems:
  - customer: foo 
    project: bar
    stage: p
    ...
  - customer: foo
    project: bar
    stage: q
    ...

我想计算这样的变量“system.name” "{customer}_{project}_{stage}":。

从上面的例子中我将得到这两个计算值:

  • 系统名称 = “foo_bar_p”
  • 系统名称 = “foo_bar_q”

我可以system.namesystem.customer或一样进行访问system.project

如何完成这个任务?

答案1

我认为你不能按照你想要的方式定义属性。

但是,您可以使用 jinja 命令在状态文件或模板中计算此值。例如:

{% for system in salt['pillar.get']('systems', []) %}
  {% do system.update({'name': system.customer + '_' + system.project + '_' + system.stage}) %}
test_state_for_{{ system.name }}:
  test.configurable_test_state:
    - result: False
    - comment: {{ system }}
{% endfor %}

在这个例子中,system字典被更新(合并)为name计算值:system.customer + '_' + system.project + '_' + system.stage

相关内容