Доступ к переменной из файла yml в ansible playbook - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь получить доступ к переменной из файла инвентаризации (yml) при запуске playbook ansible. Фрагмент формата файла инвентаря (только соответствующий раздел) выглядит так:

        cfgs:
          - name: RCH
            members:
              -  holiday
              -  map
              -  list
              -  network

Я ищу импорт "RCH" в качестве переменной в моей книге игр. Может кто-нибудь, пожалуйста, помогите мне с этим? и не хочу изменять файл инвентаризации, так как это работает для всех других требований.

Я могу получить доступ ко всему разделу, используя "{{cfgs}}", который возвращает:

"« {'Name': 'RCH', 'members': ['holiday', 'map', 'list', 'network']} «".

Также "{{cfgs ['name']}}" или "{{cfgs [" name "]}}" или "{{cfgs [1]}}" не работает при попытке извлечь «RCH» из пьесы.

1 Ответ

1 голос
/ 28 апреля 2020

Переменная cfgs представляет собой список, и первый элемент в списке имеет индекс 0, а не индекс 1. Поэтому вам понадобится:

"{{ cfgs[0] }}"

Некоторые другие примеры:

"{{ cfgs[0].name }}"       # "RCH"
"{{ cfgs[0].members[3] }}" # "network"
...