我们在salt管理的我们的爪牙上运行多个Python虚拟环境。SaltStack:来自SLS文件的数据的属性(计算值)?
系统的名称是此架构建设:
project_customer_stage
例子:
supercms_favoritcustomer_p
支柱数据:
systems:
- customer: favoritcustomer
project: supercms
stage: p
- customer: favoritcustomer
project: supercms
stage: q
对于每一个virtualenv中,我们有一个Linux用户。到目前为止,我们计算像这样的“家”这样的值:
{% for system in pillar.systems %}
{% set system_name = system.project + '_' + system.customer + '_' + system.stage %}
{% set system_home = '/home/' + system_name %}
...
但它是多余的。
我们如何避免复制粘贴{% set system_home = ...%}
?
我喜欢的方式面向对象的编程工作:
- 你可以定义一个属性的主目录
- 如果您需要在特殊的情况下,不同的主目录,那么你可以继承基类并覆盖基类的工作方式。
在盐你有YAML和模板...这两个很好的东西。但在我的情况下,OOP会很好。
我同意你的看法:“这些Jinja重的SLS文件有点难读”。我想我会用一个python渲染器。谢谢。 – guettli