2015-03-13 39 views
7

我想查找的ansible控制節點上的一個文件中的內容 -如何在文件可能不存在的情況下使用lookup('file')?

例如:

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

如果它不存在,我想該變量的文件中未定義或設置爲一個默認值。但是,如果文件不存在,查找模塊將引發錯誤。什麼是正確的方式來處理這個錯誤,以便我可以在我的代碼中分支somevar的存在?

+0

我也通過set_fact模塊試圖與ignore_errors:真... 任務:查找保存SSH hostkey這個主持人] ** ****************************** fatal:[nmf-spare-7800-3] =>在查找時找不到文件: – Ben 2015-03-13 18:54:27

回答

2

我結束了使用local_action而不是查找...

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

雖然'ignore_errors'錯誤仍會引發錯誤。但劇本將繼續。如果你不喜歡這個,你可以使用'failed_when:false',然後它會默默地跳過動作中的所有錯誤。 – udondan 2015-03-14 02:43:24

相關問題