Andrei
чтобы те, кто будут потом править/адаптировать плейбук проще жили
bebebe
цель проста, поменял в одном месте, не поменял в другом, не консистенность
bebebe
но я бы все таки настоял, что-бы создавались дополнитеьные dns зоны для разруливания "где сервер"
Andrei
ну можно и консул сделать и ему инвентори скормить, но хочется без такого оверхеда
bebebe
это решение не требует консула.
Andrei
я про днс.
bebebe
и я про днс
Vadim
при установке этой самой БД делайте set_fact: db_hostname: foo.example.com и потом читайте этот факт?
Andrei
и я про днс
я как пример привел - динамическое нахождение сервисов тоже вариант, но на мой взгляд, поднимать DNS если можно сразу все сгенерировать - лишне
bebebe
такая организация с архитектурной точки зрения правильнее. про "поднимать DNS" не понял пассаж, добавить CNAME запись в зону делается один раз.
Andrei
но я сделаю сначала как bebebe предложил, еще раз спасибо
bebebe
и далее изменяется как только у вас база переезжает с одного место в другое
Andrei
на каждой машине?
bebebe
какое доменное имя у вашего компьютера с базой данных?
Andrei
нету, ip только непубличный
bebebe
поднимите dns серевер с доменом, .infra, добавьте туда ваши сервера, пропишите в /etc/resolv.conf на ваши машинах все что не .infra, пересылайте forwarding на dns вашего провайдера
bebebe
это можно сделать подняв один docker контейнер. есть так же роли которые это сделают из коробки
Andrei
я понял решение. и по вашему это не лишне? не проще сразу при деплое все сгенерировать?
bebebe
вам виднее безусловно, я полной картины не знаю, может быть вы над домашним проектом работаете и впринципе пофик
Andrei
потому что в конечном счете конфиг днс тоже будет сгенерирован при деплое и вариант что-то поменять - запустить ansible снова, не предполагается что руками будут лазать. конечно при изменении хоста БД в моем варианте приложениям рестарт понадобится, но для меня это несущественно.
bebebe
можно делать dnsupdate при изменении вашей инфры https://docs.ansible.com/ansible/2.6/modules/nsupdate_module.html впрочем это уже давно оффтопик
bebebe
объяснять зачем в 2018 нужен dns как то даже неловко, впрочем как и в 2004
Andrei
понял, спасибо за пищу для размышлений :)
Sergey
я имел в виду что в переменных (например группы) я укажу хост БД, переменная будет использована для генерации конфига приложения. и одновременно в списке хостов мне нужно будет внести этот же хост (например в группу database) получается что я одну и ту же информацию продублирую. или я чего-то не понимаю или можно этого избежать?
Здесь нужно понимание решаемой задачи. Если "тупо указать единственный хост БД" - это одно, просто подстановка, как указано выше. Если нужно обеспечивать какую-то балансировку - это другое, и Ансибл не сможет решить за вас, как именно это нужно сделать, а самое главное - зачем. Наиболее очевидный, но и наиболее скучный вариант - клиент умеет перебирать хосты, тогда состав группы серверов БД туда пишется. Менее очевидный и более сложный - есть какая-то внешняя сущность (consul/etcd/zookeeper/younameit), куда клиент обращается с вопросом "дай-ка мне актуальное имя сервера БД".
Andrei
Здесь нужно понимание решаемой задачи. Если "тупо указать единственный хост БД" - это одно, просто подстановка, как указано выше. Если нужно обеспечивать какую-то балансировку - это другое, и Ансибл не сможет решить за вас, как именно это нужно сделать, а самое главное - зачем. Наиболее очевидный, но и наиболее скучный вариант - клиент умеет перебирать хосты, тогда состав группы серверов БД туда пишется. Менее очевидный и более сложный - есть какая-то внешняя сущность (consul/etcd/zookeeper/younameit), куда клиент обращается с вопросом "дай-ка мне актуальное имя сервера БД".
я понял, спасибо. хотелось именно обойтись без внешней сущности, без service discovery вообще, по крайней мере на первом этапе, сервис не супер большой. возможно DNS и вариант, хотя посмотрев интернет, говорят что он не для этого (хоть и используют так) и нормальный заточенный под это сервис лучше. спасибо за развернутые ответы
Danis
Использую remote_user, есть способ передать пароль без set facts?
Danis
Или любой другой способ указать пароль без facts?
Vladimir
Есть способ спрятать пароль ansible-vault
Anonymous
Приветствую друзья!
Anonymous
@varyumin в gitlab в секретную переменную
Anonymous
@varyumin ещё вариант - использовать сертификаты в смарткартах, но прямо с ansible я такого не использовал и полагаю, есть подводныеикамни
Vladimir
@varyumin в gitlab в секретную переменную
Не совсем она там секретная 😂 если сделать printenv или env можно ее прочитать
Anonymous
@varyumin да наверное так можно. Разве, что поколжовать над правами доступа как то. Чтобы запустить CI можно было но вывести переменную - нет
Anonymous
Коллеги, подскажите, как правильно работать из ансибла с приватными репозитариями в гите ?
bebebe
Коллеги, подскажите, как правильно работать из ансибла с приватными репозитариями в гите ?
https://docs.ansible.com/ansible/2.5/modules/git_module.html а чем приватный, от не приватного отличается?
bebebe
ну и первая ссылка из гугла https://www.jeffgeerling.com/blog/2018/cloning-private-github-repositories-ansible-on-remote-server-through-ssh
Anonymous
ну может я не до конца понимаю, но условно на удаленом сервере, мне чтобы отклонировать репу, нужен будет приватный ключ, на УДАЛЕННОМ сервере. Куда ложить его не хочется
bebebe
ssh-agent вам поможет в этом
Anonymous
пойду попробую, спасибо за наводку
brestows
Народ а кто-то сдавал экзамен у red hat по ansible ?
Anonymous
Что то не горит он желанием туда форвардится. Сгенерировал ключ. ДОбавил в гит. Добавил в sshagent ключ видется, если сделать обычный git clone с локальной машины - вполне нормально отрабатывает. В конфиг .ssh/config добавил Host 1.2.3.4 ForwardAgent yes
Anonymous
что ему еще не нравится - фиг знает
Anonymous
правда лью с арча на убунту, но по идее в обще фиолетово должно быть
Anonymous
причем если сделать через ансибл ssh -T git@github.com You've successfully authenticated, but GitHub does not provide shell access но клонировать ни в какую
Anonymous
в общем само потупило - само завелось
Anonymous
не удобно как то
Anonymous
потом сломалось. Может кому поможет в будущем - очистите ssh ключи агента. Помогает
zhag
Друзи, я тут ебанулся и вот что подумал.. а могу я --extravars брать сразу из монги? Прямо консолью
bebebe
Друзи, я тут ебанулся и вот что подумал.. а могу я --extravars брать сразу из монги? Прямо консолью
это вполне хорошая и годная идея, раньше брал из неё, потом перешел на etcd к сожалению на текущий момент только через pre_tasks дальше вам захочется сохранять стейт ту да же
bebebe
почему вы тогда не упомянуи еще salt? канал вроде об ansible
bebebe
Друзи, я тут ебанулся и вот что подумал.. а могу я --extravars брать сразу из монги? Прямо консолью
на практике решается через custom inevntory script, так более правильнее чем через pre_tasks
Constantin
Ребят привет, вопрос не про Ansible, простите, если правила нарушаю, сносите если так: Подскажите чатик по безопасности, где не обсуждают как кого похакать, а как от кого защититься. Можно еще канал, если кто знает.
bebebe
вы как-то странно смотрите на этот вопрос под ваше определенние так же подходит и salt с его pillar'ом. предположим, что у меня есть k8s, который информацию о своем стейте хранит в etcd, мне нужно натравит ansible на этот стейт
bebebe
простите что подвел вас
bebebe
я не до конца понимаю что вы предлагаете. есть инфстатруктура, в которой нужно делать configuration management. с частью задач справляется ansible другая часть становится "сложной" нужно расширять стек технологий и поддерживать несколько configuration management систем добавив тот же chef?
bebebe
что делать инженеру в такой ситуации?
Constantin
что делать инженеру в такой ситуации?
Изучать и добавлять новый иструмент, это не плохо. Главное чтобы в проекте было все задокументированно, чтобы инженер который придет после вас мог собраться со всем этим. Или заменять инструмент, если это возможно на более гибкий. Или расширять тот инструмент, который у вас есть (своими силами, силами сообщества, или силами разработчиков в команде)
Fedor
а как ведёт себя кнопка i`ll be back?
Fedor
у бота
Fedor
))))
Eduard
а как ведёт себя кнопка i`ll be back?
не убивает тебя из чата
Alexander
Коллеги, а вот у меня такой вопрос. Есть набор кли-программ и докер еще не изобрели. Какие инструменты есть для выстраивания зависимости запуска (и в идеале версионирования зависимостей) знает? Ну там программа-А должна запустится перед программой-Б и должна быть версии не ниже 0.0.1, и не старше 0.0.5. Допустим порядок запуска я еще могу в плейбуке разрулить. А вот с версиями кто как поступает?
Tadeusz
systemd?
Tadeusz
а, то про энсибл)
manefesto
Эй
manefesto
пссс
manefesto
ребята
manefesto
А вообще есть best practices по написанию systemd? Хочу приложение деплоить Надо понимать куда складывать конфиги, куда логи, куда бинарники в моем понимании это /etc/sysconfig/<APP_NAME> /opt/<APP_NAME> /var/log/<APP_NAME>
manefesto
и да, буду деплоить через ансибл =)
bebebe
https://t.me/grouplinux
manefesto
Думаешь она ответит мне на эти вопросы ?