SaltStack:尚不存在的用户的 $HOME
SaltStack: $HOME of users which does not exist yet
我在 minion 上创建了一个用户 foo
。小兵评估 /etc/default/useradd
。这意味着 salt master 不知道新的 $HOME 是 /home/foo
还是在我们的例子中是 /localhome/foo
.
如何获取用户 foo
的 $HOME 作为 jinia 变量?
我需要它在 systemd 服务文件中。
我想避免自定义支柱数据,因为这是多余的。有没有办法通过谷物获得它?
它在 boostrapping 期间有效吗?首先需要创建用户 foo
,然后可以通过查找 foo
的 $HOME...
创建 systemd 文件
如果用户已经存在,这将有效:
{{ salt['user.info'](user).get('home') }}/foo:
file.recurse:
- source: salt://conf/common/foo
回答这个问题:
Is there a way to get it via grains?
1) 在主配置文件指定的file_roots
下添加文件'_grains/homeprefix.py',内容为:
#!/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 上同步 cmd 以将 grains 信息同步到 minion :
salt '*' saltutil.sync_grains
3) 运行 grains.get 测试大师:
salt '*' grains.get homeprefix
我在 minion 上创建了一个用户 foo
。小兵评估 /etc/default/useradd
。这意味着 salt master 不知道新的 $HOME 是 /home/foo
还是在我们的例子中是 /localhome/foo
.
如何获取用户 foo
的 $HOME 作为 jinia 变量?
我需要它在 systemd 服务文件中。
我想避免自定义支柱数据,因为这是多余的。有没有办法通过谷物获得它?
它在 boostrapping 期间有效吗?首先需要创建用户 foo
,然后可以通过查找 foo
的 $HOME...
如果用户已经存在,这将有效:
{{ salt['user.info'](user).get('home') }}/foo:
file.recurse:
- source: salt://conf/common/foo
回答这个问题:
Is there a way to get it via grains?
1) 在主配置文件指定的file_roots
下添加文件'_grains/homeprefix.py',内容为:
#!/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 上同步 cmd 以将 grains 信息同步到 minion :
salt '*' saltutil.sync_grains
3) 运行 grains.get 测试大师:
salt '*' grains.get homeprefix