如果我有这样的话:
- include_vars: this_file_doesnt_exist.yml
ansible将抛出错误“找不到输入文件...”并停止配置过程。
我想知道是否可以在找不到文件时允许配置过程继续。
我的用例如下:
示例:
- include_vars: aptcacher.yml
- name: use apt-cache
template: src=01_proxy.j2 dest=/etc/apt/apt.conf.d/01_proxy owner=root group=root mode=644
sudo: true
when: aptcacher_host is defined
Ansible版本:1.9.1
答案 0 :(得分:4)
ignore_errors
任务只需include_vars
:
- include_vars: nonexistant_file
ignore_errors: yes
修改强>
使用ansible> 1.6.5我正在
test.yml
---
- hosts: localhost
tasks:
- include_vars: nonexistent_file
ignore_errors: yes
- debug:
msg="The show goes on"
播放[localhost]
收集事实 ************************************************** ************* ok:[localhost]
任务:[include_vars nonexistent_file] *****************************************失败:[localhost] => {"失败":是的,"文件": " / home / ilya / spielwiese / ansible / nonexistent_file"} msg:源文件没有 找到。 ...忽略
任务:[debug msg ="节目继续"] ******************************************确定:[localhost] => { " msg":"节目继续" }
答案 1 :(得分:1)
您可以使用with_first_found
对此进行归档。
- include_vars: "{{ item }}"
with_first_found:
- this_file_doesnt_exist.yml
如果没有至少一个文件匹配,我不能100%确定它会在没有抱怨的情况下工作。如果它不起作用,您将需要添加一个空的后备文件:
- include_vars: "{{ item }}"
with_first_found:
- this_file_doesnt_exist.yml
- empty_falback.yml