Mam dwa klucze ssh, które próbuję wdrożyć w jednym z moich stworów. Ale nie mogę tego zmusić do wdrożenia. Występuje błąd. Oto init.sls
filary:
/xxx/yyy/zzz/id_rsa:
file.managed:
- source: salt://private/id_rsa
/xxx/yyy/zz/id_rsa.pub:
file.managed:
- source: salt://private/id_rsa.pub
Oto mój init.sls
stan:
ssh:
file.managed:
- name: {{ pillar['private'] }}
Oczywiście robię coś złego (oczywiście), ale nie jestem pewien co. Jakieś sugestie?
ssh
deployment
ssh-keys
saltstack
bezpieczne212
źródło
źródło
Odpowiedzi:
System Salt Pillar nie ma pliku init.sls. Zarówno stany, jak i filary mają plik top.sls. Stany będące podkatalogami mogą mieć plik init.sls.
Krok 1: Zdefiniuj użytkowników w /srv/pillar/users.sls
Krok 2: Dodaj nowy filar do /srv/pillar/top.sls
Krok 3: Użyj jinja do mapowania filaru na stany w /srv/salt/user/init.sls
Nie zapomnij zsynchronizować stworów z nowymi filarami!
źródło
{% for user, data in salt['pillar.get']('users', {}).iteritems() %}
To znacznie zmieni plik SLS ; jeśli wymyślę działający przykład, opublikuję go.Należy prawdopodobnie zauważyć, że w odniesieniu do pierwotnego pytania istnieje inne proste rozwiązanie, jeśli
source: salt://...
format nie działafile.managed
- tak jak to się stało zsalt-ssh
powodu błędu https://github.com/saltstack/salt/issues/38458, który był od czasu naprawienia - i to do przełączania nacontents:
zewnętrzny filar drzewa plików, który jest również wspierany przez pliki w systemie głównym.file_tree
ext_pillar
Jest udokumentowana w https://docs.saltstack.com/en/latest/ref/pillar/all/salt.pillar.file_tree.html#module-salt.pillar.file_tree dzisiejszych czasach. Istnieje od wersji 2015.5.0, więc jest nowszy niż oryginalne pytanie i odpowiedź, ale jest to rozwiązanie, które jest dziś dość dobrze dostępne.Rzeczywiście, znajduje się również w FAQ na https://docs.saltstack.com/en/latest/faq.html#is-it-possible-to-deploy-a-file-to-a-specific-minion-without -inne-stwory-mające-dostęp-do-tego
źródło