Eseguiamo diversi ambienti virtuali Python sui nostri minion gestiti da sale.SaltStack: Proprietà (valori calcolati) per i dati dei file SLS?
Il nome del sistema è costruito da questo schema:
project_customer_stage
Esempio:
supercms_favoritcustomer_p
I dati pilastro:
systems:
- customer: favoritcustomer
project: supercms
stage: p
- customer: favoritcustomer
project: supercms
stage: q
Per ogni virtualenv abbiamo un utente linux . Fino ad ora calcoliamo valori come "casa" in questo modo:
{% for system in pillar.systems %}
{% set system_name = system.project + '_' + system.customer + '_' + system.stage %}
{% set system_home = '/home/' + system_name %}
...
Ma è ridondante.
Come evitare di copiare e incollare {% set system_home = ...%}
?
Io sono come la programmazione ad oggetti modo orientato funziona:
- Si potrebbe definire una proprietà per la home-directory
- Se avete bisogno di un diverso e directory-home in un caso particolare, allora si potrebbe creare una sottoclasse la classe base e sovrascrive il modo in cui la classe base funziona.
In Salt hai YAML e templating ... Entrambe le cose belle. Ma nel mio caso l'OOP sarebbe carino.
Sono d'accordo con te: "questi file SLS pesanti di Jinja diventano un po 'difficili da leggere". Credo che userò un renderer python. Grazie. – guettli