我想要获得来自 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.name
像system.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
。