2016-02-15 12 views
6

Vorrei includere variabili da un file sull'host remoto, piuttosto che sulla macchina di controllo su cui è in esecuzione Ansible.Ansible: include il file vars dall'host remoto

Per esempio io ho un file /var/database_credentials.yml (sul mio webserver)

Qual è il modo migliore per aggiungere le variabili dal file alla hostvars in modo che io possa utilizzare in un modello?

Il modulo include_vars accetta solo i file dalla macchina di controllo. Potrei usare il modulo di recupero, ma sembra un passaggio inutile.

risposta

1

Non dovrebbe essere difficile integrarlo con /etc/ansible/facts.d.

È possibile memorizzare file JSON, file INI o script eseguibili in tale directory e il contenuto/l'output saranno disponibili come informazioni sul server dopo l'esecuzione del modulo di installazione.

Non sono sicuro che occorrerà YAML. Potresti essere fortunato e lavorerà semplicemente aggiungendo un link simbolico al tuo file /var/database_credentials.yml. (YAML non è menzionato nei documenti ma sarebbe strano se YAML non fosse supportato poiché praticamente tutto in Ansible è basato su YAML) In caso contrario, puoi creare uno script nella lingua che preferisci che legge quel file e genera un JSON oggetto.

Vedere Local Facts (Facts.d) nella documentazione.

+0

Grazie mille! Sembra esattamente ciò di cui avevo bisogno –

+1

Non supporta YAML, ma il formato file ini funziona bene per me –