Похоже, Ansible вложенный словарь делает странные вещи с идентичными подгруппами - PullRequest
0 голосов
/ 10 октября 2018
# inventory.yml
europe:
  children:
    germany:
      children:
        on-premise:
          hosts:
            127.0.0.1:
        datacenter:
          hosts:
            127.0.0.2:
    france:
      children:
        on-premise:
          hosts:
            127.0.0.3:
        datacenter:
          hosts:
            127.0.0.4:

Выполнение следующей команды с различными параметрами --limit:

ansible-playbook -i inventory.yml random-playbook.yml --limit 'some-limit'

  • europe Я ожидаю запустить 127.0.0.1, 127.0.0.2,127.0.0.3, 127.0.0.4
  • on-premise Ожидается запуск 127.0.0.1, 127.0.0.3
  • datacenter Ожидается запуск 127.0.0.2, 127.0.0.4
  • germany Я ожидаю запустить 127.0.0.1, 127.0.0.2
  • france Я ожидаю запустить 127.0.0.3, 127.0.0.4

Теперь моя проблема:

  • Европа работает как положено
  • локально работает как положено
  • Центр обработки данных работает как положено
  • Германия работает 127.0.0.1, 127.0.0.2, 127.0.0.3, 127.0.0.4
  • Франция бежит 127.0.0.1, 127.0.0.2, 127.0.0.3, 127.0.0.4

После игры с ним, казалось,как будто это поведение исчезает, если у вас нет двух локальных или двух дочерних центров обработки данных в Германии и Франции.

Такое ощущение, что при создании списка хостов это похоже на 'хорошо, Франция, локальнои датацентр это дети ... ги все дети / хозяева этой группы '... после чего он находит хозяев в группе datacenter, которая вообще никогда не принадлежала Франции.

Мне было просто интересно, делаю ли я это неправильноили это намеренное поведение

...