【发布时间】:2014-04-21 19:41:35
【问题描述】:
我想知道是否只有在 master 中定义了目录源时才能运行 SaltStack 状态。
基本上,我希望允许用户将某些配置文件放在他们的HOME 目录中。大多数用户不会有任何特别之处,但其中一些可能(例如自定义.vimrc)
我想做的是仅当主目录中存在该目录时为用户的HOME目录执行file.recurse。
截至目前,我有以下几点:
{% for username in pillar['users'] %}
{{ username }}:
user:
- present
- home: /home/{{ username }}
[ . . . ] # (yadda, yadda, yadda)
# ToDo: Is there a way of not running this AT ALL if the users's directory is
# not present?
/home/{{ username }}:
file.recurse:
- user: {{ username }}
- group: ubuntu
- source:
- salt://users/{{ username }}
- require:
- user: {{ username }}
{% endfor %}
我想要做的是在代码中显示为ToDo:如果盐树(或盐主)中有一个目录salt://users/{{ username }},则执行file.recurse,将该目录作为file.recurse 的来源。否则,只需跳过该状态并使用 $HOME 创建用户时的任何默认内容(我的意思是什么都不做)。
我认为在file.recurse 配置中添加一个onlyif 子句(类似- onlyif: test -e salt://users/{{ username }} 会有所帮助...但是不行...我还尝试在salt://users/empty_dir/ 中创建一个空目录并将其作为默认(如file.managed 所述),但该技巧不适用于file.recurse(至少not yet):
提前谢谢你。
【问题讨论】:
标签: directory-structure createprocess salt-stack