将用户名作为参数添加到salt状态文件(sls)

时间:2015-12-10 20:29:24

标签: salt-stack

我想使用saltstack标准化开发人员工作区。因此,我需要将用户名作为参数。这可能来自$ USER或输入。要么没关系。我看到我可以写一个谷物来揭露这个,但这似乎过于复杂。我想我错过了一些更简单的东西。

我想启用类似这样的内容

https://...../reponame.git:
  git.latest:
    - target: '/home/{{ username }}/src/reponame'
    - user: {{ username }}

最好/最简单的方法是什么?

3 个答案:

答案 0 :(得分:1)

可能不优雅,但有效:使用cmd.run module让Salt minion当前正在运行的用户(假设Salt minion以用户身份运行,而不是以root身份运行):

{% set username = salt['cmd.run']('id -u -n') | trim %}

https://...../reponame.git:
  git.latest:
    - target: '/home/{{ username }}/src/reponame'
    - user: {{ username }}

答案 1 :(得分:0)

您可以在执行状态时暂时设置/覆盖支柱。

https://docs.saltstack.com/en/latest/topics/tutorials/pillar.html#setting-pillar-data-on-the-command-line

所以,使用sls(例如。workstation/gitrepo.sls),如

{% set username = salt['pillar.get']('username') %}

https://...../reponame.git:
  git.latest:
    - target: '/home/{{ username }}/src/reponame'
    - user: {{ username }}

你可以打电话

salt 'phils-pc' state.sls workstation.gitrepo pillar='{"username": "phil"}'

答案 2 :(得分:0)

EF