【发布时间】:2019-11-02 08:51:53
【问题描述】:
我需要获取 C: 分区的剩余大小,但我无法使用 win_disk_fact 模块来完成。 最终目标是在处理软件安装之前检查剩余大小是否小于 4GB,但现在我只是尝试通过调试打印该值。
我使用 win_disk_facts 模块 (https://docs.ansible.com/ansible/latest/modules/win_disk_facts_module.html),我可以使用
显示正确的值- debug:
var: ansible_facts.disks[0].partitions[1].volumes[0].size_remaining
但是根据使用此角色的位置,C: 分区可能不在第一个磁盘、分区 1、卷 0 上,它可能在我不知道的其他地方(我正在开发一个通用角色大部分会被其他人使用)
我尝试使用 jinja 过滤器,但是当我显示 var 时它返回空:
var:
disk_C: '{{ ansible_facts.disks|selectattr("drive_letter", "C") }}'
- debug:
var: disk_C
如果我尝试在以下位置显示尺寸,还有一些我没有得到的东西:
- debug:
var: ansible_facts.disks[0].partitions[1].volumes[0].size_remaining
结果是:
ok: [lab-win-01] => {
"ansible_facts.disks[0].partitions[1].volumes[0].size_remaining": "52275679232"
}
但如果我尝试将此值存储为一个新变量(以便在其他地方重用它)
vars:
diskC: '{{ ansible_facts.disks[0].partitions[1].volumes[0].size_remaining }}'
- debug:
var: diskC
那么结果是:
ok: [lab-bs-win-01] => {
"diskC": "VARIABLE IS NOT DEFINED!"
}
拜托,有人可以就这两个问题启发我吗?
【问题讨论】:
标签: windows ansible ansible-facts