из JSON файла
- name: set Windows server os
set_fact: windows_hosts="{{ cmdb_data | to_json | from_json | json_query(jq) | join(',') }}"
vars:
jq: "[? contains (os, 'Windows')].fqdn"
а как из этого объекта сделать список
т.е. я хочу получить список для вставки в инвентори
но результат фильтра list или split этого не дает.
возможно я неправильно понимаю тип полученного объекта и применяю к нему не те методы
текущий вывод это строка
name1,name2
может стоит сделать замену символа запятой на перенос строки?
А зачем это ансиблом делать? Обработайте башем
Эта мысль в голову не пришла, спасибо Идея применить ансиб была из сути "большой" задачи. Препроцесс по серверам. Но может действительно это стоит отдать на внешний скрипт
Ну здрасьте. При чем тут баш вообще? Ничего обрабатывать не нужно. У ансибла json - нативный формат
Уберите финальный фильтр join - и на выходе у вас будет список
Вы сами список в строку превращаете зачем-то с помощью фильтра join
Так ему потом это копипастнуть и в инвентори. Для таких вещей хоть на баше хоть на питоне хоть на го - имхо проще чем портянка фильтров
Лучше написать, что вы хотите в итоге получить.
Так так и делается, есть cmdb, выгрузка их которой JSON. По задумке она и служит источником инвентори
Обсуждают сегодня