Мне нужно создать код YAML для разделения и форматирования диска для windows, входом будет файл Dynami c / json с подробной информацией о имени диска, метке - PullRequest
0 голосов
/ 17 июня 2020

формат входного файла, который я использую (json / dictionary), как в приведенном ниже словаре формата:

 {
     "disks": {
    "disk2": {
      "name": "S",
      "label": "Sample",
      "disknum": 2
    },
    "disk3": {
      "name": "T",
      "label": "Testing",
      "disksize": 10
    },
    "disk4": {
      "name": "K",
      "label": "Urban",
      "disknum": 4
    }

код, который я использовал, приведен ниже, но номер диска жестко закодирован здесь в ввод, который мне нужно заменить значениями, полученными из ansible win_disk_facts,

начальный номер диска должен быть от 2, так как диск 0, диск 1 уже занят, можем ли мы включить номер диска из фактов в l oop, упомянутом ниже?

 - name: Perform Partition of disks
    win_partition:
    drive_letter: "{{item.value.name}}"
    partition_size: -1
    disk_number: "{{item.value.disknum}}"
    loop: "{{ lookup('dict', disks) }}"

1 Ответ

0 голосов
/ 23 июня 2020

Я нашел способ разрешить эти 2 ситуации

1. увеличить значение индекса (с indexed_items)

  • debug: msg: "номер диска {{item .0 +2}} "with_indexed_items: -" {{lookup ('dict', disks)}} "

2. использовать значение индексации при разбиении (loop_control)

  • name: Perform Разделение дисков win_partition: drive_letter: "{{item.value.name}}" partition_size: -1 disk_number: "{{2 + my_idx | int}}" l oop: "{{lookup ( 'dict', disks)}} "loop_control: index_var: my_idx
...