Андрей
Пока не сталкивался, не могу сказать
Отделение Bereke Bank
Iwan
YaML
Понял, спасибо за ответ :)
Андрей
YaML
https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html вот так?
Sergey
Да - где YaML.
Андрей
интересно, сколько времени займет перезаписать в YaML вот такой формат "HOSTNAME ansible_host= port=" примерно для 1500 хостов с разных окружений))
Отделение Bereke Bank
с ролями не понял мысли вообще
ну смотри. у тебя есть роль. она сабмодулем подключена в N проектов когда необходимо раскатить одну и ту же версию роли на эти N проектов это вызывает больше телодвижений
Gleb
обновить сабмодули одна команда
Отделение Bereke Bank
обновить сабмодуль в N репах, запустить плейбук N раз
Gleb
я бы такую шутку сделал через тот же рандек и свелось бы все к нажатию одной кнопки
Anton
У меня для прода примерно 800 хостов, как лучше инвентори сделать?:/
AWX или сабмодули git. Как использовать сабмодули можно посмотреть тут https://m.habr.com/ru/post/432260/
citius
можно несложный плагин написать, который будет динамически подтягивать инфру из любого удобного хранилища. у меня, например, в консуле хранится все в kv.
citius
сами хосты вытаскиваются из терраформ стейтов (которые тоже лежат в консуле), в них же сразу есть разбивка по группам и типам хостов, а груп варсы для всех окружений из консул kv.
Sergei
братва, вопрос прнс. Хочу забрать инвентори из переменной, так можно?
Ждун
Почитай про dynamic inventory
Ждун
Json
Владимир
Коллеги, подскажите, пожалуйста, как в плейбуке запушить этот плейбук с его начинкой тасков на гитхаб?
Владимир
Tadeusz
shell... какой кошмар, есть же git модуль
Владимир
я только начинаю 🙂
Tadeusz
доки ansible'овые +- прекрасны, чай не хашикорп
Petr
shell не так уж и плох. Просто его обязательно нужно использовать совместно с register и when ;) К сожалению, иногда без shell'a никак не обойтись...
Tadeusz
bashsible, ага
Petr
Мир неидеален
Tadeusz
братва, вопрос прнс. Хочу забрать инвентори из переменной, так можно?
наверное, без питона не обойдется, даже самую малость
Sergei
угу, понял. Спасибо, попитоним
Petr
угу, понял. Спасибо, попитоним
Можно без питона обойтись, Передать через переменную окружения ANSIBLE_INVENTORY
Владимир
Владимир
подскажи по этому поводу - что не так?
Petr
в каком формате? ip1, ip2 , ip3, ?
RTFM, https://docs.ansible.com/ansible/latest/reference_appendices/config.html#default-host-list
Tadeusz
ну ты выполни руками то что делает ansible за тебя
Tadeusz
и убедишься что проблема не в нем)
Сергей "Mist"
доки ansible'овые +- прекрасны, чай не хашикорп
Будь добр подсказать вот какой момент. Я тоже как начинающий. Была задача в конфиге заббикса поменять строчку и сделал через модуль замены текста. Это тоже плохой путь? Если да, то как лучше решить эту задачу?
Tadeusz
jinja2 (template)
Сергей "Mist"
Спасибо.
Petr
Будь добр подсказать вот какой момент. Я тоже как начинающий. Была задача в конфиге заббикса поменять строчку и сделал через модуль замены текста. Это тоже плохой путь? Если да, то как лучше решить эту задачу?
lineinfile не всегда корректно работает. Иногда может и продублировать строку. Но в большинстве случаев нужно просто корректно регэксп написать.
Eugen
клуб любителей костылей, какой-то :)
просто не все умеют в регэксп))
Petr
клуб любителей костылей, какой-то :)
это скорее клуб реалистов ;)
Tadeusz
я ничего плохого в этом костыле не вижу: action: shell sed -E -i -e 's|^#?PermitRootLogin\s.*$|#&\nPermitRootLogin without-password|' /etc/ssh/sshd_config
citius
Будь добр подсказать вот какой момент. Я тоже как начинающий. Была задача в конфиге заббикса поменять строчку и сделал через модуль замены текста. Это тоже плохой путь? Если да, то как лучше решить эту задачу?
Кмк, лучше всего сделать шаблон с нужными тебе настройками в переменных, и его раскладывать ансиблом. Все эти башсиблы и лайнинфайлы - не всегда предсказуемы, и отлаживать сложно.
Petr
я ничего плохого в этом костыле не вижу: action: shell sed -E -i -e 's|^#?PermitRootLogin\s.*$|#&\nPermitRootLogin without-password|' /etc/ssh/sshd_config
К сожалению, не под всё на свете есть модуль, иногда гораздо проще и быстрее воспользоваться модулем shell, чем изобретать что-то более сложное. shell'ом нужно просто уметь пользоваться. И самое главное нужно учитывать то, что этим будет пользоваться кто-то ещё с неопределённым уровнем подготовки. Врядли кому-то будет охота разбираться в самописном модуле и потом ещё его дебажить. Проще надо быть и люди к вам потянутся ;)
Tadeusz
ой, не надо ко мне "потягиваться", карантин на дворе
Petr
а потом открываешь такие роли/пейбуки и кровь из глаз. Так что не надо
Если видите что можете написать лучше и, самое главное, у вас есть время на рефакторинг, то можно только за вас порадоваться ;)
Eduard
@tnt4brain / @tgadiev ушатай чем-нить потяжелее юную ИП, шоль.
Ivan
надо изначально не говнокодить, по возможности )))
Вот меня всегда интересовал момент. Как понять что ты говно кодишь или нет? У всех подход к разработке разный.
Eduard
Если на следующий день не хочется блевануть после вчерашнего - уже неплохо
Владимир
Модуль git я так понимаю не умеет комит делать на гитхам? Только при помощи shell?
Владимир
Как задача звучит исходная?
Загрузить созданный плейбук в приватный репозиторий по его окончанию
Timur
Timur
Можно поинтересоваться - что за оригинальный юзкейс?
Владимир
тестовое задание на собеседовании 🙂
Timur
Ок
Timur
У гитхаба есть api
Timur
С любыми api можно работать с помощью модуля uri
Владимир
ох, ну это прям вообще сложно получается. проще заюзать shell
Владимир
для меня по крайне мере
Timur
Зачем он вам?
Владимир
такую задачу поставили 🙂
Timur
такую задачу поставили 🙂
Тогда решайте так, как принято
Timur
Вы какое впечатление произвести хотите?
Владимир
не джедая конечно же 🙂 я нуб
Timur
Если криворукого говнокодера, то вперёд к шеллу
Владимир
я понял, что модуль гит умеет только клонировать репу, но не пушить в нее
Timur
Пушить в репу - не самый типичный юзкейс для ансибла
Timur
Поэтому и модуля специального нет