2015-03-13 12 views
7

Voglio occhiata il contenuto di un file sul nodo di controllo ansible -come utilizzare la ricerca ('file') in ansible quando il file potrebbe non esistere?

esempio:

- hosts: all 
    vars: 
    somevar: "{{ lookup('file', playbook_dir + '/some/path' + inventory_hostname) }}" 

se il file non esiste mi piacerebbe la variabile per essere indefinito o impostato su un valore di default. Il modulo di ricerca genera comunque un errore se il file non esiste. Qual è il modo giusto per gestire questo errore in modo da poter ramificare l'esistenza di somevar all'interno del mio codice?

+0

Ho provato anche tramite il modulo set_fact con ignore_errors: True ... TASK: [Lookup salvato ssh HOSTKEY per questo host] ** ****************************** fatale: [nmf-spare-7800-3] => Impossibile trovare il file nella ricerca : – Ben

risposta

2

ho finito per usare local_action piuttosto che di ricerca ...

- name: "Lookup saved ssh hostkey for this host" 
    local_action: shell cat {{playbook_dir}}/path/to/{{inventory_hostname}}.pubkey 
    ignore_errors: True 
+3

Gli errori di 'ignore_errors' generano comunque un errore. Il playbook continuerà comunque. Se non ti piace, potresti usare 'failed_when: false', quindi salterà silenziosamente tutti gli errori dall'azione. – udondan

Problemi correlati