2016-04-18 31 views
5

Tworzę użytkownika foo na stworniku. Sługus evalutes /etc/default/useradd. Oznacza to, że mistrz soli nie wie, czy nowy $ HOME będzie /home/foo lub w naszym przypadku /localhome/foo.

Jak mogę uzyskać $ HOME użytkownika foo jako zmienną jinia?

Potrzebuję go w pliku usługi systemd.

Chciałbym uniknąć danych niestandardowych filarów, ponieważ jest to zbędne. Czy istnieje sposób na zdobycie go za pomocą ziaren?

Czy działa podczas wprowadzania doładowania? Pierwszy użytkownik foo musi być utworzona, a następnie plik Systemd mogą być tworzone przez patrząc dolarów domu foo ...

to będzie działać, jeśli użytkownik już istnieje:

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

Pokrewne problem : https://github.com/saltstack/salt/issues/7883

Odpowiedz

3

odpowiedzieć na to pytanie:

Czy istnieje sposób, aby dostać go za pomocą ziaren?

1) dodać plik '_grains/homeprefix.py' pod file_roots określoną w pliku konfiguracyjnym nadrzędnego, którego treść brzmi:

#!/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) uruchomienie synchronizacji cmd na mistrza do synchronizacji ziarna Informacje na minion:

salt '*' saltutil.sync_grains 

3) uruchomić grains.get na mistrza do testu:

salt '*' grains.get homeprefix