Timur
Чтобы что?
Anton
есть роль, которая в параметр хочет получить все хосты куда поставить себя
nett00n
есть роль, которая в параметр хочет получить все хосты куда поставить себя
может быть это должна решить не роль? Может быть это должен проверить плейбук? Типа "хост в группе "монго" - значит катим туда роль "монго"?
Anton
mongodb_replication_params: - { host_name: 192.168.56.2, host_port: "{{ mongodb_net_port }}", host_type: replica }
Anton
параметр из роли, роль самая популярная в гелекси (не уверен что самая правильная, но все же).
Anton
вот я не хочу прописывать руками туда ноды монги, а хочу взять их из инветори, из определнной группы.
Anton
https://galaxy.ansible.com/undergreen/mongodb
Anton
https://github.com/UnderGreen/ansible-role-mongodb
Andrey
В плейбук для группы указывают роль, а не наоборот
Anton
В плейбук для группы указывают роль, а не наоборот
это не избавляет от того что роли нужно передать параметры с хостами
Timur
https://github.com/UnderGreen/ansible-role-mongodb
Так себе роль, судя по коду
Anton
вопрос мой все же остается открытым)
Anton
несмотря на то что роль может быть так себе)
Nikolay
Кто знает, можно ли передавать в переменные multiline значения? Например в переменной указан маппинг портов ports: 8080:8080, я хочу, чтобы значение было вида ports: 8080:8080 9090:9090
Andrey
вопрос мой все же остается открытым)
вам ответ со SO не прокатил?
Anton
вам ответ со SO не прокатил?
там не совсем то, он отдает count, а мне бы списком забрать, но буду пробовать, спасибо.
Andrey
кхм
Andrey
ну если вам только готовые ответы и вы не умеете стирать лишнее ...
Anton
да конечно, только готовые, иначе зачем еще этот канал? 😉
Timur
И просто groups тоже не прокатит. Там словарь нужен
Andrey
ему надо передать список хостов как параметр для роли
Timur
Угу
Timur
Только не просто список, а список словарей
Andrey
ну так {{ groups['group_name'] }} это как раз оно
Timur
В принципе, эти словари можно в hostvars загнать теоретически. И тогда они через groups['blablabla'] должны подхватиться
Anton
спасибо в любом случае
Andrey
в доке есть прям пример {{ groups['x'] | map('extract', hostvars, 'ec2_ip_address') | list }}
Timur
Список словарей так сделать не получится
Anton
если кому интересно, то мне подошло это - https://stackoverflow.com/a/41807132
Timur
Или вы в претаски это засунуть хотите?
Anton
Или вы в претаски это засунуть хотите?
да, сформирую факт из списка словарей, передам его как параметр в роль.
Anton
это не слишком зашквар? а то я не знаю хорошо еще канонов.
Timur
это не слишком зашквар? а то я не знаю хорошо еще канонов.
Не, это норм как раз. Только код там не самый удобный
Timur
Нужно цикл другой
Timur
Вам же нужно не просто hostname и id в виде номера
Timur
а host_port, host_type и т.п.
Timur
а host_port, host_type и т.п.
Их придется через hostvars доставать, скорее всего
Anton
Их придется через hostvars доставать, скорее всего
не, они статичны, я их просто передам и все.
Anton
т.е. для каждого хоста, тип и порт одинаковы, и в инвентори их нет, поэтому они и не нужны
Timur
не, они статичны, я их просто передам и все.
Они одинаковы для всех хостов?
Timur
А, ну ок
Anton
Они одинаковы для всех хостов?
в моем случае да, вообще конечно роль предполагает что могут быть разными, но я не буду покрывать эти сценарии.
Timur
В любом случае, цикл по inventory_hostnames будет проще
Timur
А создание списка словарей делается также, да
дед Максим
Кстати всем спасибо) Дело было в древнсти аксамита. Удалось с линуха ансиблом рулить виндой. Но есть один вопрос. На винде запускаю шельный скрипт, который поразумевает интерактив - нужно вводить пару параметров в ходе выполнения скрипта - так вот, реально ли интерактив прокинуть в ансибл? Или забыть про это?
Ждун
а если переделать скрипт, чтобы можно было вводить параметры к скрипту, а если не ввели, то интерактив
Ждун
а потом уже в ансибле запускать скрипт с параметрами
дед Максим
это основной вариант) Ща скрипт переделаем. В ансибле скрипт запускать с уже готовыми параметрами. Просто думал, что реально как то интерактив настроить, но погулив - понял, что скорее всего не получится..
Andrey
проще переделать
дед Максим
Anonymous
Никто не сталкивался с некорректной работой Galaxy? Импортирую роль с гитхаба, пишет что прошло успешно, делаю ansible-galaxy install user.role и в скачанной роли нет моих последних изменений. Хотя в самом Галакси (например в ридми к роли) все корректно
Anonymous
а какие изменения есть?
Изначально форкнул чужую репу и ее заимпортил. И после этого коммитил, пушил и импортил повторно. В том, что я получаю в результате выполнения ansible-galaxy import нет моего кода.
George
эм
George
я спрашиваю другой
George
коммит какой берется?
George
т.е. напиши - последний коммит в ориг репе
George
последний коммит в твоей репе
George
и что фактически прилетает
Anonymous
Исходная репа - https://github.com/geerlingguy/ansible-role-jenkins Форк - https://github.com/RenderQwerty/ansible-jenkins Импорт в галакси - https://galaxy.ansible.com/renderqwerty/ansible_jenkins Можно в самом галакси посмотреть на README.md и увидеть что первая строка выглядит как "Ansible Role: Jenkins CI System" - это то, что менял для примера А в результате выполнения ansible-galaxy install renderqwerty.ansible_jenkins мы получаем состояние коммита в исходной репе Джеффа
Pavel
Подскажите, плз, можно ли хранить ключ шифрования для ansible-vault в переменной окружения CI, например, ну чтобы не хранить этот ключ в том же месте, где и зашифрованные файлы или не вводить его руками в терминале (что невозможно в CI, например)
Pavel
не могу понять, как. можно подсказку? =)
Timur
Она берет релизы по тегам
Anonymous
Jungo
короткий вопрос - yaml или ini ? что удобнее ?