Правильно ли я понимаю, что playbook выполняется на неком хосте, который не входит в группу [api] ?
Если да, то предполагаю, что лучше вообще завести данную информацию как данных и извлекать их как данные в зависимости от хоста, а не через hostvars.
Не совсем понятно, что хочется и зависит от количества переменных.
Возможно, пример:
roles:
- { role: test1, some: some_thing1 }
Как я понимаю, если переменные определить как массивы
some_thing1:
- 1
- 2
some_thing2:
- "as"
- "it"
то вероятно прокатит передача необходимо переменной в роль. Но - не пробовал.
Иван: Клиент может выбирать ту или иную запись или по собственной логике или как решит библиотека, с которой он собран.
Некоторые "тупые" клиентыт выбирают "первый" IP, который встретили. Причем "первый" из того, что им библиотека посунула.