使用Ansible进行条件变量检查时,模块是否失败?

使用Ansible进行条件变量检查时,模块是否失败?,ansible,Ansible,我有一个Ansible任务,我在其中使用变量-window和total\u 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 fail

我有一个Ansible任务,我在其中使用变量-
window
total\u 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
但不知何故,我的
total_files
变量在
failed_时根本不起作用。我尝试了我能想到的所有组合,但是如果我像这样使用
“{{total_files}}”
,那么我会收到警告,这就是为什么我开始像这样使用
total_files
,但仍然不起作用。有没有想过我做错了什么

[WARNING]: when statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: files.matched < "{{ total_files }}"
[警告]:when语句不应包含jinja2模板分隔符,如{{}或{%}。找到:files.matched<“{{total_files}}”
我从命令行传递这两个变量值

因此,您正在传递字符串,因此将
文件.matched
与字符串值进行比较

改为:

failed_when: files.matched < total_files | int
失败时:files.matched


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

在将标记应用于问题之前,请阅读标记的说明。“linux”标签完全不合适。
failed_when: files.matched < total_files | int