Ben*_*Ben 9 ansible ansible-playbook
我想在ansible控制节点上查找文件的内容 -
例:
- hosts: all
  vars:
    somevar: "{{ lookup('file', playbook_dir + '/some/path' + inventory_hostname) }}"
如果文件不存在,我希望变量未定义或设置为默认值.如果文件不存在,查找模块会抛出错误.什么是处理此错误的正确方法,以便我可以在我的代码中分支somevar的存在?
似乎从这篇原始文章到现在,此功能已添加到查找插件中。
对我来说它有效,我使用的是 2.8.5 版本:
https://docs.ansible.com/ansible/latest/plugins/lookup.html#using-lookup-plugins 
2.6 版新增功能。
您现在可以通过设置为, ...来控制所有查找插件中错误的行为方式。errorsignore
- hosts: all
  vars:
    somevar: "{{ lookup('file', playbook_dir + '/some/path' + inventory_hostname, errors='ignore') }}"
我最终使用 local_action 而不是查找...
- name: "Lookup saved ssh hostkey for this host"
  local_action: shell cat {{playbook_dir}}/path/to/{{inventory_hostname}}.pubkey
  ignore_errors: True
| 归档时间: | 
 | 
| 查看次数: | 3182 次 | 
| 最近记录: |