SaltStack:$ HOME用户尚不存在

时间:2016-04-18 09:16:52

标签: salt-stack user-management home-directory

我在小兵身上创建了一个用户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

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

1 个答案:

答案 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