2013-08-20 11 views
10

Mamy dwa różne środowiska, dev i produkcję, zarządzane przez pojedynczy serwer Salt. coś takiego:Jak uniknąć powtórzenia się w stanach solnych?

base: 
    'dev-*': 
    - users-dev 
    'prod-*': 
    - users-prod 

user-dev i users-prod stany są niemal tak samo, jak ten:

{% for user, data in pillar['users-dev'].items() %} 
{{ user }}-user: 
    user.present: 
    <...something...> 
{{ user }}_ssh_auth: 
    ssh_auth.present: 
    <...something...> 
{% endfor %} 

Nie chcieliśmy powielać kodu więc nasz początkowy pomysł żeby zrobić coś takiego :

{% users = pillar['users'].items() %} 
include: 
    - users-common 

a następnie odwołać się do users w users-common, ale to nie działa bec Prawidłowa składnia Jinji to set users = pillar['users'].items() i nie była przeznaczona do pracy w różnych stanach solnych.

Pytanie brzmi, jak to zrobić właściwie?

Odpowiedz

2

Wszystkie jinja są oceniane przed obliczeniem któregokolwiek ze stanów (łącznie z instrukcjami include).

Jednak sądzę, że po prostu będzie można odnieść się bezpośrednio do pillar['users'].items() wewnątrz users-common. Czy to nie pozwala ci na dostęp do filaru z tego stanu?

Powiązane problemy