使用Ansible和failed_when模块进行条件变量检查?

时间:2018-02-20 21:20:40

标签: ansible

我有一个Ansible任务,我在其中使用变量 - windowtotal_files。我从命令行传递这两个变量值:

 - name: Check all files
   find: paths=/var/lib/goldy/jobs/processdata/workspace/files
         file_type=file
         age=-{{ window }}m
         age_stamp=mtime
   register: files
   failed_when: files.matched < total_files

以下是我的运作方式:

ansible-playbook -e 'host_key_checking=False' -e 'total_files=6' -e 'window=10' abc.yml

但不知怎的,我的total_files变量在failed_when模块中根本不起作用。我尝试了所有我能想到的组合,但是如果我这样使用"{{ total_files }}"那么我就会收到警告,这就是为什么我开始使用这样的total_files,但它仍然不起作用。对我做错了什么的想法?

[WARNING]: when statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: files.matched < "{{ total_files }}"

1 个答案:

答案 0 :(得分:1)

  

我从命令行传递这两个变量值

所以你传递字符串,因此你将files.matched与字符串值进行比较。

更改为:

failed_when: files.matched < total_files | int

您发布的警告与根本问题无关。