2015-03-13 7 views
7

Chcę odnośnika zawartość pliku na ansibl węzła sterującego -jak używać odnośnika ("pliku") w ansibla, gdy plik może nie istnieć?

przykład:

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

jeśli plik nie istnieje Chciałbym zmienną jako niezdefiniowany lub ustawiono na a domyślna wartość. Moduł wyszukiwania generuje błąd, ale jeśli plik nie istnieje. Jaki jest właściwy sposób na poradzenie sobie z tym błędem, abym mógł rozgałęzić się na istnieniu somevar w moim kodzie?

+0

Próbowałem też poprzez moduł set_fact z ignore_errors: True ... ZADANIE: [Lookup zapisane ssh hostkey dla tego hosta] ** **************************** śmiertelny: [nmf-spare-7800-3] => nie mógł znaleźć pliku w odnośniku : – Ben

Odpowiedz

2

skończyło się używając local_action zamiast odnośnika ...

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

Błędy 'ignore_errors' nadal będą powodować błąd. Playbook jednak będzie kontynuowany. Jeśli Ci się to nie podoba, możesz zamiast tego użyć 'failed_when: false', wtedy po cichu pominiesz wszystkie błędy z akcji. – udondan