我在小兵身上创建了一个用户foo
。小兵评估/etc/default/useradd
。这意味着salt master不知道新的$ HOME是/home/foo
还是我们的/localhome/foo
。
如何将用户foo
的$ HOME作为jinia变量?
我需要在系统服务文件中使用它。
我想避免自定义支柱数据,因为这是多余的。有没有办法通过谷物获得它?
在boostrapping期间有效吗?首先需要创建用户foo
,然后通过查找foo
的$ HOME来创建systemd文件...
如果用户已经存在,这将有效:
{{ salt['user.info'](user).get('home') }}/foo:
file.recurse:
- source: salt://conf/common/foo
答案 0 :(得分:3)
回答这个问题:
有没有办法通过谷物获得它?
1)添加文件' _grains / homeprefix.py'在主配置文件指定的file_roots
下,其内容为:
#!/usr/bin/env python
from os.path import dirname, expanduser
def gethomeprefix():
# initialize a grains dictionary
grains = {}
# Some code for logic that sets grains like
grains['homeprefix'] = dirname(expanduser("~"))
return grains
2)在master上运行sync cmd以将grain信息同步到minion:
salt '*' saltutil.sync_grains
3)运行grain.get on master进行测试:
salt '*' grains.get homeprefix