Ansible是否有非shell/command模块可查询指定文件夹的磁盘空间
解决方案
可使用community.general.disk_usage模块实现该需求,该模块是Ansible社区官方维护的专用磁盘查询模块,无需调用shell或command模块即可精准查询指定路径对应的磁盘空间占用数据。
基础使用示例
- name: 查询指定文件夹对应的磁盘占用信息 community.general.disk_usage: path: /path/to/folder register: disk_stat_result
常用返回字段说明
你可以直接从注册的变量中读取所需数据:
path: 你查询的原始路径mount: 该路径对应的磁盘挂载点size_total: 磁盘总容量,单位为字节,可通过Ansible内置的human_readable过滤器转为易读的GB/MB格式size_available: 磁盘可用容量,单位为字节size_used: 磁盘已用容量,单位为字节used_percent: 磁盘已用占比,为数值类型
输出易读格式的示例
和df -h展示效果一致的实现方式:
- name: 打印格式化后的磁盘占用信息 debug: msg: "路径{{ disk_stat_result.path }} 总容量: {{ disk_stat_result.size_total | human_readable }} 可用容量: {{ disk_stat_result.size_available | human_readable }} 使用率: {{ disk_stat_result.used_percent }}%"
前置依赖说明
如果当前Ansible环境未安装社区通用集合,可执行以下命令安装:ansible-galaxy collection install community.general
内容的提问来源于stack exchange,提问作者Mirco
相关产品推荐
相关产品推荐

