Salt Stack:SLS文件中的模板

时间:2014-07-22 09:26:11

标签: templates firefox selenium salt-stack

我使用Salt Stack进行部署,需要将不同的浏览器版本部署到Selenium Grid节点(例如Firefox 29.0和30.0)。所以从Salt的角度来看,我想在 top.sls

中使用以下内容
base:
  'firefox29':
    - firefox
      - version: 29.0

  'firefox30':
    - firefox
      - version: 30.0

在此示例中,我们重用 firefox.sls 状态:

firefox:
  pkg.installed:
    - skip_verify: True
    - version: {{ version }}

我尝试使用最近的Salt(2014.1.7)上面的SLS文件,它们被忽略(没有安装)。当我从 firefox.sls 中删除版本时,会安装最新的Firefox。

是否有可能以某种方式参数化SLS状态,就像在我的例子中一样?我在Github(https://github.com/saltstack/salt/issues/8878)上看到了一个问题,描述了使用Jinja宏的方法,但没有设法将它用于我的情况。

1 个答案:

答案 0 :(得分:2)

可以使用jinja宏执行此操作:

firefox:
  pkg.installed:
  {% if grains['id'] == 'firefox29' %}
    - version: 29.0
  {% elif grains['id'] == 'firefox30' %}
    - version: 30.0
  {% endif %}

如果它变得更复杂,你应该投资学习支柱并保持这种逻辑。 http://docs.saltstack.com/en/latest/topics/pillar/