使用Ansible进行条件变量检查时,模块是否失败?
我有一个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
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