Как получить оставшийся размер на C: с ansible? - PullRequest
0 голосов
/ 19 июня 2019

Мне нужно получить оставшийся размер раздела C :, и у меня есть trooble, чтобы сделать это с модулем win_disk_fact. Конечная цель - проверить, если оставшийся размер меньше 4 ГБ, перед обработкой установки программного обеспечения, но сейчас я просто пытаюсь напечатать значение с отладкой.

Я использую модуль 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!"
}

Пожалуйста, кто-нибудь может рассказать мне об этих двух вопросах?

...