2016-04-18 5 views
5

私はミニオンでユーザーfooを作成します。ミニオンは/etc/default/useraddと評価されます。つまり、新しい$ HOMEが/home/fooになるか、私たちのケースでは/localhome/fooになるかは、ソルトマスターがわかりません。

fooというユーザーの$ HOMEをjinia変数として取得するにはどうすればよいですか?

システムドサービスファイルに必要です。

これは冗長なので、私はカスタムのピラーデータを避けたいと思います。それは穀物を介して取得する方法はありますか?

ブラジケーション時に機能しますか?

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

関連の問題を:ユーザがすでに存在する場合、最初に作成する必要がありfooユーザーは、systemdにファイルがfooのは$ HOMEを検索することによって作成することができます...

はこれが働くだろう:https://github.com/saltstack/salt/issues/7883

答えて

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)穀物を同期するには、マスターに同期CMDを実行します手先の情報:テストにマスター上

salt '*' saltutil.sync_grains 

3)を実行grains.get:

salt '*' grains.get homeprefix 
関連する問題