无法将数值存储在寄存器变量中并检查条件语句

问题描述

我正在使用下面的ansible剧本来检查root(/)大小。如果大于80%,则应通过条件。但这没有按预期工作。有人可以帮我吗?

  tasks:
- name: Check the space of the root
  shell: |
     df -h / | awk -F" " '{print $5}' | sed 's/%//g' | tail -1
  register: disk_output

- debug:
   msg: "the root is greater than 80%"
  when: disk_output.stdout > 80

解决方法

Ansible在条件语句中使用Jinja2测试和过滤器。

您可以使用int过滤器将disk_output.stdout转换为整数,然后将其与80值进行比较:

  - debug:
      msg: "the root is greater than 80%"
    when: disk_output.stdout | int > 80

欢呼