Timur
В плейбуке никакого инвентаря нет
Vladislav 👻
плейбук стартуется с 2+ инвентори
Timur
Там есть плеи на разные группы
Timur
Это как вообще?
Vladislav 👻
Vladislav 👻
вот так
Timur
А, понятно. Ну, так плейбук там ни при чем. И?
Timur
При этом инвентари у вас должны быть согласованными
Timur
Без перекрытий
Vladislav 👻
в роли в темплейте делаю генерацию на основе инвентори, хочу узнать, к какому инвентори принадлежит хост
Vladislav 👻
Вот эти две переменные не спасают, ибо там полный и стремный путь: - "{{ inventory_dir }}" - "{{ inventory_file }}"
Timur
в роли в темплейте делаю генерацию на основе инвентори, хочу узнать, к какому инвентори принадлежит хост
Что значит - к какому инвентори? Плейбук об инвентаре ничего не знает, в этом и смысл
Vladislav 👻
да забудь ты про плейбук
Timur
Плейбук знает группы, которые подтягиваются из инвентаря
Vladislav 👻
ансибл знает
Denis
Объявить в каждом инвентори в группе all переменную с нужной строкой
Denis
Дешево, сердито, предсказуемо
Andor
хороший хак, ай лайк ит
Vladislav 👻
Timur
Не проще по группам разделить?
Andor
давай своё классическое #странное
Vladislav 👻
почему странное, я просто хочу для хоста с ходу отметку, что за инвентори
Vladislav 👻
катаю конфиг прометеусу, мы льем в один сервер прод и дев, хочу лейблы проставить для хостов
Timur
Логика группировки хостов все равно только по группам
Vladislav 👻
нет
Vladislav 👻
ты предлагаешь в одном инвентори сидеть с разных группах?
Timur
Или один и тот же хост у вас одновременно в разных инвентарях присутствует?
Vladislav 👻
и такое может быть
Andor
и такое может быть
ща тебе скажут что ты хочешь странного
Vladislav 👻
в разных
Timur
Каждый хост может одновременно быть членом многих групп
Vladislav 👻
ща тебе скажут что ты хочешь странного
уже сказал, хотя нормальная задача, которая даже из коробки поддерживает все
Timur
и такое может быть
Ты хочешь странного
Vladislav 👻
да да да
Denis
Возможно, Тимур имеет в виду, что два инвентори можно рассматривать как две группы одного инвентори, и группы как сущность роднее для ансибла
Vladislav 👻
ansible-inventory в корне не согласен, но да ладно
Timur
Ещё раз. Есть инвентарь, описывающий группы с хостами и их переменные
Vladislav 👻
Возможно, Тимур имеет в виду, что два инвентори можно рассматривать как две группы одного инвентори, и группы как сущность роднее для ансибла
да, он это говорит, но это не панацея и более того, могут возникать проблемы, в которые я уже упирался, именно поэтому разделил спокойно инвентори
Timur
При считывании инвентаря (в одном или разных файлах) все это выстраивается в один общий словарь из групп хостов с соответствующими переменными
Andor
ansible-inventory в корне не согласен, но да ладно
привыкай что мнение админов чята не совпадает с тем что написано в документации
Andor
предлагаю просто забить :)
Timur
С точки зрения ансибла при выполнении плея каждый хост - это отдельная сущность с набором тегов в виде групп и полученным набором переменных. Откуда это было получено и из какого инвентаря - уже совершенно без разницы
Denis
да, он это говорит, но это не панацея и более того, могут возникать проблемы, в которые я уже упирался, именно поэтому разделил спокойно инвентори
Разделять инвентори - это вроде обычная практика, но пытаться напрямую узнать, что по итогу из какого инвентаря взялось, очень непрямой путь, хотя и возможный
Stefan
господа, что я делаю не так? есть совершенно простая таска, на более старых версиях ансибла подобной проблемы никогда не возникало tasks: - name: Copy docker-compose file template: src: /templates/docker-grafana_prom-storage.j2 dest: /home/{{ ansible_user }}/prom-storage/docker-compose.yml данный шаблон есть сто процентов и написан верно, однако когда запускаю плейбук, то пишет: "Could not find or access '/templates/docker-grafana_prom-storage.j2' on the Ansible Controller
Timur
привыкай что мнение админов чята не совпадает с тем что написано в документации
Что именно в документации расходится с тем, что я пишу?
Stefan
А у тебя в корне есть templates?
да, роль со всей нужно структурой
inqfen
В начале src / стоит
Andor
Andor :o)
ой, кто это
inqfen
да, роль со всей нужно структурой
Ну так раз в роли, то убери /templates, он каталог относительно / ищет
Stefan
скорее всего тебе надо убрать /templates/
я и так пробовал, просто оставив название j2 темплейта, пишет такое: Could not find or access 'docker-grafana_prom-storage.j2'\nSearched in:\n\t/home/ubuntu/rm-devops-tools/ansible/roles/docker-compose-updater/tasks/templates/docker-grafana_prom-storage.j2\n\t/home/ubuntu/rm-devops-tools/ansible/roles/docker-compose-updater/tasks/docker-grafana_prom-storage.j2\n\t/home/ubuntu/rm-devops-tools/ansible/roles/docker-compose-updater/tasks/templates/docker-grafana_prom-storage.j2\n\t/home/ubuntu/rm-devops-tools/ansible/roles/docker-compose-updater/tasks/docker-grafana_prom-storage.j2 on the Ansible Controller
Timur
да, он это говорит, но это не панацея и более того, могут возникать проблемы, в которые я уже упирался, именно поэтому разделил спокойно инвентори
Разделение инвентори - это как раз нормально. Ненормально потом пытаться логику плея на это разделение навешивать
Stefan
ну вот он пишет же где ищет, туда ему и положи
но почему он ищет в tasks/templates/ ?Оо
Stefan
а не templates...
Andor
хм, и правда же
Sergey
но почему он ищет в tasks/templates/ ?Оо
где-то перекрытие зарыто
inqfen
Пути поиска где-то сломаны
Stefan
понял, спасибо
Timur
Как расположены роль и плейбук
inqfen
А то, что ты до этого написал - это в /templates, логично, что такой директории вообще нет
Stefan
А то, что ты до этого написал - это в /templates, логично, что такой директории вообще нет
ну предположительно полагал, что он локально ищет, относительно расположения плейбука который запускается
Stefan
Покажи как запускаешь
ansible-playbook tasks/main.yml --check
inqfen