【发布时间】:2023-03-26 12:15:01
【问题描述】:
我需要检查所有服务器磁盘大小小于 10GB 的 linux 服务器,并且如果它以 MB、GB、1TB 为单位也应该显示输出,它应该显示为相同。 我已经使用下面的代码来检查 ansible playbook 中的磁盘大小
- name: Get disk info
set_fact:
disk_size: "{{ item.value.size }}"
with_dict:
- "{{ ansible_facts['devices'] }}"
ignore_errors: yes
tags: get_disk_info
# - debug:
# msg: "{{ disk_size }}"
# ignore_errors: yes
# tags: get_disk_info
- debug:
msg: >
{% if disk_size > 10 %}
Disk Size {{ disk_size }} -> PASS
{% else %}
Disk Size {{ disk_size }} -> FAIL
{% endif %}
tags: get_disk_info
如果服务器的磁盘大小为 55MB,它也会将输出显示为 PASS,但根据代码中的上述条件,它应该显示为 FAIL..
如果在所有方面都应该大于 10GB,请帮助我在这本剧本中获得 PASS
【问题讨论】:
-
55 大于 10。在比较之前尝试将所有内容转换为字节。
-
如果是55MB也显示为PASS,但不应该显示为PASS,应该显示为FAIL。
-
正确。但这不是比较所做的。事实上,
55 > 10 ?将“通过”。在比较之前转换为字节将是57671680 > 10737418240 ?和“失败” -
如果是 jinja2 模板中的 MB、GB、TB 计算,我需要将此字节值转换为 MB、GB、TB。请对此提供帮助