首页 文章

SaltStack:$ HOME用户尚不存在

提问于
浏览
5

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

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

我需要在systemd服务文件中 .

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

它在加速期间有效吗?首先需要创建用户 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 回答

  • 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
    

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

    salt '*' saltutil.sync_grains
    

    3)运行grain.get on master进行测试:

    salt '*' grains.get homeprefix
    

相关问题