C'è un modo per accedere a un host/gruppo di vars all'interno di uno custom written module? Vorrei evitare di passare tutte le vars richieste come parametri del modulo.Ansible: accesso host/gruppo vars dall'interno del modulo personalizzato
Il mio modulo è scritto in Python e io uso il boilerplate. Ho controllato praticamente tutti Vars disponibili ma non vengono memorizzati da nessuna parte:
def main():
pprint(dir())
pprint(globals())
pprint(locals())
for name in vars().keys():
print(name)
Ora la mia unica speranza è che sono in qualche modo accessibili attraverso i utils modulo senza documenti.
Credo che non è possibile, poiché il modulo viene eseguito sul computer di destinazione e, probabilmente, i fatti/host/Vars del gruppo non vengono trasferite insieme con il modulo ...
Edit: Trovato il module utils ora ed è non sembra promettente.
È molto interessante! Al momento non è un'opzione perché richiederebbe un host redis aggiuntivo accessibile dalla casella locale e dalla casella remota. Questo è un po 'troppo di overhead. Ma potremmo implementarlo in quel modo più tardi quando avremo più automazione fatta con Ansible. Il caching dei fatti è qualcosa che probabilmente vorremmo comunque in seguito. Accetterò la tua risposta - mentre non è la soluzione ottimale sembra essere la migliore disponibile. – udondan
È possibile installare semplicemente redis sul server ansible esistente. redis è molto leggero, quindi non è richiesto alcun server aggiuntivo. –
Bene, qui è un po 'più complesso.Gestire più migliaia di host in 8 colonne con più vlans separati in ciascuno. Abbiamo appena iniziato con Ansible. In questo momento ciò comporterebbe troppi sforzi, ma è ovvio che occorrerà fare il caching dei fatti non così lontano in futuro e quindi questo dovrebbe essere molto facile da implementare. – udondan