John
сервер промы - это сервер куда должен быть установлен прометеус.
По умолчанию параметры передаются из переменных:
тут пример: https://github.com/cloudalchemy/ansible-prometheus
Timur
Еще раз. Что конкретно у вас не работает с точки зрения ансибла? Нюансы настройки прометеуса тут оффтоп
John
с точки зрения ансибла не заполняются переменные, кототрые должны выть так:
Timur
Где они не заполняются?
Timur
В каком файле?
John
а заполнять я их пытаюсь так:
Timur
Билять
John
заполняться они должны именно в переменных, перед установкой прометеуса
John
что бы при установке прометеуса он к ним обратился и получил данные
Timur
Еще раз: как устанавливается прометеус у вас? Дайте полную картину. Плейбука, роль, инвентори, результат
Timur
Почему из вас все клещами нужно тянуть?
John
(наверно потому что я тупой как минимум в части ансибла)) сорян)
Timur
Timur
Что мешает-то?
John
прометеус устанавливается из роли: https://github.com/cloudalchemy/ansible-prometheus
Плейбук выглядит так:
John
Timur
Вы издеваетесь?
Timur
Выкладывайте нормальные исходники на https://pastebin.com/
Timur
И давайте ссылку
Timur
Ваши обрезки скриншотов собирать в паззл - сомнительное удовольствие
John
результат https://pastebin.com/JUit3bTf
John
понял, сейчас на пастебине соберу
Отделение Bereke Bank
В Казахстане пастебин заблокирован 😞
Timur
John
https://pastebin.com/JUit3bTf
вроде все собрал, и даже результат))
Vladimir
simplemice.eth
https://telegra.ph/Tut-tak-prinyato-11-04
simplemice.eth
если кто забыл, напоминаю
Timur
John
чего то еще не хватает?
Timur
Роль прометея у вас ставится вот так:
- name: Install Prometheus
hosts: monitoring
roles:
- cloudalchemy.prometheus
На группу monitoring. В параметрах плея нет никаких дополнительных параметров, включая таргеты. В инвентори для группы monitoring - тоже пусто. И чего вы хотите в таком случае?
Timur
У вас роль ставится без каких-либо параметров
Timur
Откуда роль должна о ваших таргетах узнать?
John
из роли систем?
- name: Set list of inventory group
set_fact:
targets: "{{ groups['all'] | map('extract', hostvars, ['ansible_ssh_host']) | list }}"
Timur
Timur
Вы думаете, ансибл результаты и факты каждого плея в ноосфере сохраняет?
Egor
Ребят, привет.
Вопрос: кто-нибудь настраивал для AWX изолированную ноду?
John
то есть переменные каждой роли не влияют на другие роли? я правильно понимаю?
Timur
Timur
У вас плеи разные
John
почему разные? плейбук то один вроде? я уже вообще потерялся в ваших словах
Timur
Вы просто, грубо говоря, прогнали один набор скриптов, которые задают какие-то переменные. Потом все это забыли и прогнали другой набор скриптов. И думаете, что при втором прогоне скрипты почему-то должны узнать, что было у вас при первом
Timur
Timur
Ну, и в любом случае на втором плее нужный параметр у вас никак не задается
Timur
Вам нужно заполнить словарь prometheus_targets
John
ах вот оно что..
то есть вынести "Set list of inventory group" в отдельную роль, и "играть" эту роль во втором плее - тогда я только получу желаемый результат?
Timur
Timur
Можно одним пре-таском обойтись
Timur
И нужно задавать правильный параметр. У вас он не задается, где бы вы этот таск не вызывали
John
в плей где ставится прометеус поставить еще и пре-таск, который соберет факты - тут я понял.
John
Timur
Вам нужен словарь вот такого вида:
prometheus_targets:
node:
- targets:
- localhost:9100
- demo.cloudalchemy.org:9100
labels:
env: demosite
John
именно
Timur
У вас он нигде не задан
Timur
Там задается обычная переменная targets
Timur
К словарю prometheus_targets она никакого отношения не имеет
John
так как же мне собрать и задать словарь prometheus_targets?
Timur
так как же мне собрать и задать словарь prometheus_targets?
Вот так попробуйте:
---
- name: Install Prometheus
hosts: monitoring
roles:
- cloudalchemy.prometheus
- cloudalchemy.grafana
vars:
prometheus_targets:
node:
- targets: >-
{{ groups['all']
| selectattr('ansible_ssh_host','defined')
| map('extract', hostvars, ['ansible_ssh_host'])
| list }}
John
Спасибо, пробую.
Вы это из головы сгенерировали? Как бы и мне научится так? Как надо мыслить и что прочитать что бы приблизиться к этому?))
Timur
Timur
Ну, и RTFM не мешает
Timur
Timur
Действительно, странное поведение фильтров
Alexander
Ну ладно )
Timur
Надо потестить еще
John
John
счас на пасте соберу весь выхлоп
Timur
Поправить немного вызов нужно
Timur
В параметре сделайте так:
prometheus_targets:
node:
- targets: >-
{{ groups['all']
| map('extract', hostvars, ['ansible_ssh_host'])
| select('defined')
| list }}
Timur
У меня работает
John
ну значит и у меня когда нибудь заработает)
Поправил, запустил. Ждем результат)
может поясните не много, как до этой конструкции дойти? где про такое почитать, что бы понять что тут происходит и научится самому?
John
уже чувствую что все будет ок:
TASK [cloudalchemy.prometheus : configure prometheus static targets] changed: [test-bnb0] => (item={'value': [{u'targets': [u'10.0.3.89', u'10.0.3.78', u'10.0.3.85', u'10.0.3.177']}], 'key': u'node'})
Timur
Тут ничего особенного
John
порты только не прописаны)
Timur
Вам нужно в параметре задать значение словаря
Timur
В словаре prometheus_targets есть свойство targets, содержащее список нужных вам адресов
John
Тут ничего особенного
для кого-то ничего особенного, для неопытного какой-то космически недостижимый феншуй