Lex
все равно спасибо за время :)
Sergey
Почему?
Поясняю. Соотношение между хостами и группами устанавливается в inventory. Как только у тебя появляются хосты, к которым не нужно применять все такси данной роли - поздравляю, это просто появилась подгруппа. Отмазки "ой, не хочу заводить подгруппу" не катят просто потому, что в долговременной перспективе (хотя бы полгода, что уж там) гирлянды when-ов начинают болеть и рассыпаться. Синтаксис подгруппы описан в документации. Иначе говоря, не нужно забивать костыли в то место, где есть штатные средства. Это моя личная точка зрения. Основана на моём опыте практического применения Ансибла на проектах разного калибра (AWS >100 хостов тоже было). Ваш пробег может отличаться 😊
Pavel
Ну, собственно, логично, единственно, считаю, если инфраструктура достаточно проста, почемуб не использовать условия. При больших же инсталляциях, спасает только динамический инвентори, считаю
Pavel
Чот много считаю я)))))
Sergey
Ну, собственно, логично, единственно, считаю, если инфраструктура достаточно проста, почемуб не использовать условия. При больших же инсталляциях, спасает только динамический инвентори, считаю
Про большие инсталляции - согласен. Только, честно говоря, если требуется управление конфигурацией - это, на минуточку, _уже большая_ инфраструктура. А лютые гроздья when - это перебор всегда.
Pavel
Может быть несколько маленьких инфраструктур, объединенных, например, каналом взаимодействия
Pavel
Можно все причесать под одну гребенку, но, зачем усложнять
Sergey
Можно все причесать под одну гребенку, но, зачем усложнять
Каждый мышка сама готовит себе кактус 😊)))
Pavel
Не поспоришь) Просто у меня такое было, несколько абсолютно разных сущностей, и, покуда инфраструктура не разрослась, держал просто несколько инвентори. Щас уже там не работаю, может ребята и запихали все это в консул/зукипер/хзчо. Я не успел)) дико не люблю статику, там где она изменчива))))
manefesto
Опять плевался на этот awx
manefesto
https://github.com/ansible/awx/blob/devel/INSTALL.md опять похерил всю базу
manefesto
сам дурак =(
🧙‍♂️
Ребят, как отключить фингерпринт чек? host_key_checking=False не помогает
🧙‍♂️
в настроках самого ансбл хоста в ssh конфиге уже StrictHostKeyChecking no UserKnownHostsFile /dev/null
🧙‍♂️
плюс еще и на эту группу хостов через парамико (вдруг это важно)
🧙‍♂️
во, нашел ошибку, не в ту секцию было написано host_key_checking=False
🧙‍♂️
всё заработало, всем спс
matt
а где ты указал? в [defaults]?
manefesto
нет ограничение на значение переменных ? допустим валидное ли значение переменной project: 'https://google.com'
Sergey
есть кстати спека по YaML которую хорошо бы запомнить
manefesto
я в awx назвал проекты по имени сайта, в плейбук сравниваю when: (project == 'test-example.ru')
Sergey
я в awx назвал проекты по имени сайта, в плейбук сравниваю when: (project == 'test-example.ru')
вот только вчера это обсуждали ведь - обвешиваться when = bad practice
manefesto
ну тем не менее, я в пределах одного плейбука выполняю разные разные действия на разных серверах
Sergey
для этого есть группы хостов
manefesto
у меня например есть плейбук который снимает дамп с рабочей базы на сервер srv2, потом собирает фронт, бекенд и накатывает миграции на сервер srv5, потом на сервере srv6 стягивает собранный фронт и собирает бэк без миграций
manefesto
для этого есть группы хостов
я обязательно это посмотрю
Anonymous
Не, ну по группам реально удобнее
manefesto
кудрявый ты тоже здесь чоли ?
Anonymous
А куда же я денусь?
manefesto
гоу в личку
Anonymous
Ща в бан за оффтоп обоих ))
manefesto
расскажешь как группы юзаешь
manefesto
у меня плейбук выглядит так - hosts: all roles: - backup_db_rc - update_rc
manefesto
а в ролях фильтрую
Sergey
ну вот в hosts: all факап и кроется
manefesto
я понимаю
Sergey
best practice: - hosts: group1 roles: - role1 - hosts: group2 roles: - role2 тем более, что в роли можно ещё и параметры передавать - вообще песня получается
manefesto
- hosts: srv02 roles: - backup_db_rc - hosts: srv05,srv06 roles: - update_rc
manefesto
аааа
manefesto
ну погляжу
Sergey
да, типа того
Sergey
- hosts: robot tasks: - include_role: name: piva_prinesi vars: beer: "my_lovely_beer"
Sergey
ещё удобная конвенция (из личного опыта) - все группы называть английской формой множественного числа (то бишь "-s" на конце)
Sergey
- hosts: fronts - hosts: nginxes - hosts: dbs
manefesto
мне сразу напоминает это джанго, он модели в админке пишет с S на конце
Serge
Here is the slides deck for my today's talk about Pyventory on SPb Python meetup at Yandex office https://speakerdeck.com/lig/pyventory-for-ansible
sudobash
Ребята, кто-то работал с ansistrano? Вопрос. У меня есть несколько ролей с тегами настройке окружения, самого проекта, обновления конфигов, перезапуску сервисов, простой rolebook. Мне надо сделать систему деплоя новых релизов с помощью ansistrano. Мне надо переписать роли в файлы стадий или можно как-то указать теги для стадий ansistrano?
sudobash
Но это же часть ansible вроде как (пакет в galaxy), неужели никто не пользуется..
Stepan
помесь негра с мотоциклом
Sergey
Но это же часть ansible вроде как (пакет в galaxy), неужели никто не пользуется..
Скоре всего, никто. Название позволяет предположить, что это какой-то странный гибрид Capistrano (самопальная поделка рубишников, служащая для..... гхм, не знаю, я не рубишник, слышал краем уха, что якобы они им деплоят) и Ансибла.
Sergey
Так вот, здесь могут подсказать про Ансибл. Про тёмную сторону - нет.
Evgeny
это просто 2 роли которые если им разложить приложение в определенном виде будут деплоить его согласно некоторыми договоренностям, аля капистриано по сути некий такой аналог штатного deploy_helper модуля
Evgeny
лучше его юзать
Stepan
@tnt4brain Так и есть, более того, любители рыбьего языка решают капистраной те задачи которые решаются ансиблом.
Sergey
ну это же по вкусу, я просто про то, что здесь людей с таким вкусом, считай, нету - непрофильная группа
Stepan
насчет самопальности - ну типа опенсорс, как и ансибля )
Sergey
насчет самопальности - ну типа опенсорс, как и ансибля )
про самопальность - я имел в виду, что рубисты писали. оно и крякает, как рубишное приложение, и летает, как рубишное приложение
Stepan
немного снобизмом попахивает)
Sergey
немного снобизмом попахивает)
Просто на мой вкус странно в группе по ансиблу спрашивать про деплой рубишных приложений какой-то очень специфической ролью. Обычно разарботчики такие штуки используют от боли и безысходности. Полноценное на рубях - Шеф вон тот же.
SergeyB
ансистрано к руби не имеет никакого отношения
sudobash
Оно же на python, к руби никакого отношения не имеет, кроме как идеологическое. Просто система выката и отката релизов. Но если есть какие-то встроенные инструменты для этого, то куда копать? Ansible_helper может деплоить по тегу/ветее, хранить релизы и откатывать куда надо? Не работал с этим просто.
Evgeny
хелпер позволит оздавать директории, симлинки и все такое, а скачать по метке можно просто модулем git
Evgeny
тут если вас устраивает те ограничения которые накладывает капистриано на структуру то юзайте, а если хотите по своему то просто ансиблем можно
sudobash
Мне просто нужна ручной выкат релизов на тест, прод. С возможностью быстро откатить в случае чего. Может есть кейсы какие-то на чистом ansible? Ansistrano как раз для этого и написали, использую идеологию рубишного инструмента
Sergey
тупо пишешь роли в зависимости от своих компонентов
sudobash
Тогда вопрос, может немного не в тему. У меня нет опыта работы со сборкой пакетов, потому может странные вещи для вас спрошу. Если приложение использует такой стек: Django, uwsgi, nginx, MySQL, supervisor. Что из этого должно быть на хост машине? Если с mysql понятно, то как поступать с конфигами supervisor например? Deb должен складывать конфиг приложения в каталог конфигов supervisor?
sudobash
А с nginx конфигом? Он должен его кидать в sites-available и делать симлинк как обычно делают?
sudobash
Или мне уже лучше в сторону докера смотреть? Есть какая-то грань, когда deb уже не нужен?
sudobash
Не изменяет, вопрос сейчас не в версионировании, а в том что делать с конфигами частей стека, если собирать пакет. Вот я укажу зависимости, nginx, supervisor, а конфиги приложения куда складывать и как их контролировать при изменении, удалении? Хотя пойду почитаю доку, может мои вопросы вообще не имеют смысла))
Tadeusz
conf.d/tvoj_config.conf