我们在salt管理的minions上运行了几个Python虚拟环境.
系统的名称由此架构构建:
project_customer_stage
例:
supercms_favoritcustomer_p
支柱数据:
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 = ...%}
?
我就像面向对象编程的工作方式:
您可以为主目录定义属性
如果在特殊情况下需要不同的主目录,那么您可以继承基类并覆盖基类的工作方式.
在盐中你有YAML和模板......两件好事.但就我而言,OOP会很好.