我们在salt管理的仆从上运行了几个Python虚拟环境。在
系统的名称由以下架构生成:
project_customer_stage
示例:
^{pr2}$支柱数据:
systems:
- customer: favoritcustomer
project: supercms
stage: p
- customer: favoritcustomer
project: supercms
stage: q
对于每个virtualenv,我们有一个linux用户。到目前为止,我们像这样计算“home”这样的值:
{% for system in pillar.systems %}
{% set system_name = system.project + '_' + system.customer + '_' + system.stage %}
{% set system_home = '/home/' + system_name %}
...
但这是多余的。在
我们如何避免复制和粘贴{% set system_home = ...%}
?在
我喜欢面向对象编程的工作方式:
盐里有山药和模板。。。都是好事。但在我的情况下,OOP会很好。在
您还可以动态生成支柱数据。请考虑以下支柱文件示例:
此支柱定义从
^{pr2}$systems.yml
文件加载YAML数据,Salt将在pillar_root
目录中查找该文件。此文件可能如下所示(与初始示例非常相似):请注意,此示例动态计算项目名称和用户主目录等属性,除非它们在数据文件中明确定义。为此,在支柱定义中使用Jinja^{} filter 。在
使用此支柱定义,您可以直接从支柱数据在状态定义中使用}:
name
和{另外,在我看来,这些Jinja heavy SLS文件有点难以阅读,您可以考虑切换到支柱文件的Python renderer:
相关问题 更多 >
编程相关推荐