当vars文件丢失时,有没有办法中止执行?

时间:2018-01-02 17:28:23

标签: ansible

我想将以下文件包含在文件丢失时停止执行的内容:

  vars_files:
    - "{{ customer }}.yml"

不确定Ansible(2.4)中是否有类似内容。

1 个答案:

答案 0 :(得分:1)

您不需要做任何事情 - 如果文件丢失,Ansible默认停止。例如:

ansible-playbook playbook.yml --extra-vars customer=non_existing_file

产生以下错误并停止执行:

  

ERROR! vars文件{{customer}}。找不到yml

我怀疑您的customer变量未在vars_files声明中使用的范围中设置,因此请改用include_vars module

- hosts: all
  pre_tasks:
    - include_vars:
        file: "{{ customer }}.yml"

默认情况下,如果customer未定义,则会产生错误:

  

致命:[localhost]:失败! => {" msg":"该任务包含一个带有未定义变量的选项。错误是:'客户'未定义\ n \ n错误似乎出现在/Users/techraf/so48065296-is-there-a-way-to-abort-execution-when-vars-file-is-missing/playbook.yml& #39;:第8行,第7列,但可能在文件的其他位置,具体取决于确切的语法问题。\ n \ n违规行似乎是:\ n \ n任务:\ n - include_vars:\ n ^ here \ n \ nexception类型:\ nexception:'客户'未定义"}

如果您对错误消息本身不满意,可以使用assertfail将其添加到任务前。