Sto usando hiera per assegnare classi come webserver
o dbserver
ai miei nodi. La classe webserver
include solo apache e ne imposta alcune configurazioni (ad esempio porta). Ovviamente non voglio replicare questa configurazione per ogni nodo, quindi l'ho messo in common.yaml. Tuttavia, il mio common.yaml sta diventando grande, quindi voglio dividerlo. Mi piacerebbe avere un file contenente la configurazione per il ruolo webserver
, un altro per il ruolo di dbserver
ecc sto immaginando il mio hiera.yaml a cercare qualcosa di simile:Come posso dividere il mio hiera config per ruolo?
:hierarchy:
- "fqdn/%{::fqdn}"
- "role/%{ROLE}"
- common
dove la cartella role
conterrebbe file come webserver.yaml
, appserver.yaml
, dbserver.yaml
. Ho visto vari post sul blog che affermano che la soluzione è creare un "ruolo" personalizzato, ma la maggior parte di essi lo realizza caricando quel fatto da un file sul nodo dell'agente (ad esempio da /etc/role
), che per me sembra sconfiggere il punto di burattino (uso puppet in modo specifico in modo da non dover accedere a ciascun nodo e modificare qualche configurazione ogni volta che voglio avere un nuovo ruolo).
Per essere chiari, non voglio dover modificare i file sull'agente per farlo funzionare, voglio farlo tutto usando la configurazione presente sul master.
Immagino di poter avere qualcosa di simile al seguente ed elencare in modo esaustivo ogni ruolo come elemento nella gerarchia, ma non sembra gestibile.
:hierarchy:
- "fqdn/%{::fqdn}"
- "webserver"
- "appserver"
- "dbserver"
- common
C'è un modo per risolvere questo?