SaltStack:$ HOME用户尚不存在

gue*_*tli 5 user-management home-directory salt-stack

foo在minion上创建了一个用户.小兵评估/etc/default/useradd.这意味着盐主人不知道新的$ HOME是/home/foo在我们的情况下还是在我们的情况下/localhome/foo.

如何将用户的$ HOME foo作为jinia变量?

我需要在systemd服务文件中.

我想避免自定义支柱数据,因为这是多余的.有没有办法通过谷物获得它?

它在加速期间有效吗?首先foo需要创建用户,然后通过查找$ HOME来创建systemd文件foo...

如果用户已存在,这将起作用:

{{ salt['user.info'](user).get('home') }}/foo:
  file.recurse:
    - source:    salt://conf/common/foo
Run Code Online (Sandbox Code Playgroud)

相关问题:https://github.com/saltstack/salt/issues/7883

sel*_*ish 3

回答这个问题:

有没有办法通过谷物得到它?

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
Run Code Online (Sandbox Code Playgroud)

2)在master上运行sync cmd将grains信息同步到minion:

salt '*' saltutil.sync_grains
Run Code Online (Sandbox Code Playgroud)

3)在master上运行grains.get来测试:

salt '*' grains.get homeprefix
Run Code Online (Sandbox Code Playgroud)