George
подкинь любой имидж, в котором есть ssh 😊 image - надо указывать, только если у тебя docker executor
Глеб
ручками) просто серверов стало в 2.5 раза больше
Глеб
и ручками уже некамильфо..
Евгений
Ансиблом попробуйте
Глеб
короче, регистрирую раннер, а дальше написть YAML скрипт, который будет коннектиться на каждый из серверов по ssh и экзекутить там баш скрипт, который будет пулить ветку?)
Глеб
Ансиблом попробуйте
хотелось бы гитлабом, потому что потом еще автотесты на мобильных платформах надо будет мутить и один хер разбираться в нем
Глеб
сыпысы)
Евгений
Запускайте в гитлабе ансибл и будет норм
Глеб
хорошо же, будем пробовать все, если не получится по ssh
Defective
А не проще гитлабом собирать пакет, а на серверах дергать apt update ? Просто делать на каждом сервере git pull кажется несколько менее удобным
Igor
https://cpu.fail/
Igor
зеродеев завезли
Igor
George
Гит пулл на целевом сервере - дно
🏳️ Phil
Ахахах
🏳️ Phil
Уже DO среагировал https://www.digitalocean.com/docs/droplets/how-to/kernel/upgrade/
Tadeusz
хм, а кто как снепшотит эластику, находящуюся в докере? раскатана на трех нодах, "крон" на одной из нод, т.е. если она приляжет физически, то и снепшотов не видать свежих
Tadeusz
мм?
Tadeusz
не кубер)
Aleksey
не кубер)
Ну, отселить джобу в отдельный контейнер, раскатать по кластеру. В эластике создать индекс, в котором будет запись о том какой из контейнеров мастер, написать хартбиты для определения состояния мастера.
Navern
И на каждой тачке запускать крон
Aleksey
а это идея, спасибо!
Мне кажется @smilingnavern дал более дельный совет
Tadeusz
локи? заморочь такой
Navern
Зависит от того что уже есть в инфре)
Tadeusz
ну etcd есть, да)
Tadeusz
кстати, etcd раскатывал кто-нибудь в swarm'е deploy: global ?
Евгений
локи? заморочь такой
Сделайте маленький сервис, который крон-джобами через etcd руляет Он вам точно пригодится в будущем
Tadeusz
я пока слабо понимаю кейс
Евгений
А что читать? Не понимаю
Евгений
Вам вы будете решать задачу "запустить крон-задачу по расписанию, если есть вероятность отказа рабочей ноды"?
Tadeusz
маленький сервис - ну эт опонятно, а откуда-куда крон-джобы будут ходить?
Tadeusz
да, конечно
Tadeusz
если раб нода умрет - кроны умрут
Евгений
Пихаете в etcd список крон-задач, пишите сервис, который катаете на все ноды. 1. Он подписывается на изменения списка крон-задач 2. Планирует исходя из него когда что выполнить 3. Когда приходит время выполнить задачу: * пытается взять лок в etcd (специфичный для каждой задачи) * если не получается, то забивает * если получается, выполняет задачу
Tadeusz
воу воу, звучит очень даже не плохо, но вот "пишете сервис" - тут не ясно совсем
Евгений
Что не ясно? Я даже алгоритм написал по которому ваш сервис должен работать
Oleksandr
хм, а кто как снепшотит эластику, находящуюся в докере? раскатана на трех нодах, "крон" на одной из нод, т.е. если она приляжет физически, то и снепшотов не видать свежих
а у вас настроен ретеншен индексов? можно аналогично выполнять и бекапы - поднять рядом с эластиком сайдкар контейнер с продергиванием эндпоинта по крону
Евгений
Изобрёл, называется https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/
Tadeusz
кубер кубер (
Tadeusz
https://github.com/crazy-max/swarm-cronjob
Tadeusz
я слышал что некоторые ещё запускают Джобы по расписанию с помощью гитлаба. Вариант?
Tadeusz
хотя... нода с гитлабом помрет и приехали
Oleksandr
хотя... нода с гитлабом помрет и приехали
SaaS использовать? для крона? )))
Combot
Dolphin mi has been banned! Reason: CAS ban.
Azer
Были ли у кого подводные камни с использованием logstash в отдельном ECS-сервисе на AWS? Кратко обрисую ситуацию: CloudWatch, собака, дорогой, да ещё и троттлит иногда. ELK на хетцнере(или даже Elastic Cloud) куда дешевле. Хотим отправлять логи туда, но прежде хотелось бы узнать, есть ли вдруг у кого какие best practices. Спасибо!
Alex
Cloudwatch же дорогой по метрикам. Логи он собирает бесплатно, и кладёт в s3. и Прайсинг только за s3 выходит. Или я ошибаюсь?)
Cate
Всем привет
Cate
там до рит++ осталось немного времени.
Cate
если кто-то желает посетить - есть промокод.
Cate
РИТ++ 2019 (https://ritfest.ru/) – Профессиональный фестиваль для тех, кто делает Интернет. 27 и 28 мая 2019г. в Кампусе СКОЛКОВО, Москва, пройдет отраслевая выставка и целый ряд профессиональных узкотематических конференций: системное администрирование и эксплуатация, высоконагруженные системы и базы данных, серверное программирование, управление проектами и предпринимательство, качественная разработка IT-продуктов, а также фронтенд-разработка. Мы решили расширить аудиторию фестиваля "Российские интернет-технологии" и предлагаем две новые возможности для участия: + Если вы студент, аспирант или преподаватель ВУЗа, то вы можете воспользоваться скидкой в 75% от стоимости билета - используйте скидочный код Academic{devops40} при заказе билетов на сайте конференции. Имейте в виду, что при регистрации мы попросим вас показать любой документ, удостоверяющий ваш статус." + Если вы частное лицо и нет компании, которая компенсировала бы вам билет, то вы можете воспользоваться скидкой в 50% - используйте скидочный код Personal{devops40}. В обоих случаях оплата возможна только как оплата от частного лица через Яндекс.Кассу и вы можете заказать билет только для себя. Впрочем вы можете передать скидочный код вашему сокурснику или другу и он может сделать то же самое. Надеемся, что вам у нас понравится 😊
ℭ𝔞𝔯𝔯𝔬𝔩
РИТ++ 2019 (https://ritfest.ru/) – Профессиональный фестиваль для тех, кто делает Интернет. 27 и 28 мая 2019г. в Кампусе СКОЛКОВО, Москва, пройдет отраслевая выставка и целый ряд профессиональных узкотематических конференций: системное администрирование и эксплуатация, высоконагруженные системы и базы данных, серверное программирование, управление проектами и предпринимательство, качественная разработка IT-продуктов, а также фронтенд-разработка. Мы решили расширить аудиторию фестиваля "Российские интернет-технологии" и предлагаем две новые возможности для участия: + Если вы студент, аспирант или преподаватель ВУЗа, то вы можете воспользоваться скидкой в 75% от стоимости билета - используйте скидочный код Academic{devops40} при заказе билетов на сайте конференции. Имейте в виду, что при регистрации мы попросим вас показать любой документ, удостоверяющий ваш статус." + Если вы частное лицо и нет компании, которая компенсировала бы вам билет, то вы можете воспользоваться скидкой в 50% - используйте скидочный код Personal{devops40}. В обоих случаях оплата возможна только как оплата от частного лица через Яндекс.Кассу и вы можете заказать билет только для себя. Впрочем вы можете передать скидочный код вашему сокурснику или другу и он может сделать то же самое. Надеемся, что вам у нас понравится 😊
Azer
за трафик до хецнера не дороже будет?
Возможно, выйдет то на то, но в приоритете сейчас Elastic Cloud, начальство хочет SQL-интерфейс и машин лёнин для дата-сатанистов.
公墓
Привет, подскажите, правльно ли я хочу деплоить проект на докере: Создам контейнер, который будет вебпаком собирать фронт на vue, контейнер для nginx, который будет сервить свежесобранный фронт и проксировать запросы на бекенд сервисы, ну и контейнеры бекенд сервисов?
公墓
На первый взгляд всё правильно
Спасибо. А как правльно настроить volume, чтобы между двумя контейнерами бандл шарить? Просто на хост машине директорию в /tmp создать и маунтить её в контейнер со сборкой фронта и в контейнер nginx? Правильно понимаю, что если файлы фронта поменяются, после пересборки, то запущенный nginx будет отдавать новый бандл? Извините за глупые вопросы.
公墓
А почему не положить статику внутрь контейнера и пересобирать контейнер при каждом деплое?
А если при пересборке зайдёт клиент, а там даже заглушки (или старой версии) нет?
Aleksey
А если при пересборке зайдёт клиент, а там даже заглушки (или старой версии) нет?
Вы контейнер с оркестратором используете или без? Если у вас Kubernetes - можно настроить canary deployment.
Ivan
мне больше интересно как шарить данные между контейнерами, если они лежат в контейнере?)
Niko
общий volume mount
Aleksey
Логика пайплайна сборки такая: * Собираете контейнер с nginx и статикой * пушите контейнер в docker-registry * деплоите контейнер в Kubernetes используя ReplicaSet В таком случае простоя для клиентов либо не будет, либо он будет крайне маленьким
公墓
Вы контейнер с оркестратором используете или без? Если у вас Kubernetes - можно настроить canary deployment.
Я даже не знаю что такое оркестратор, извините, я простой кодерок. А с кубом никогда не работал.
Aleksey
Я даже не знаю что такое оркестратор, извините, я простой кодерок. А с кубом никогда не работал.
Оркестратор это Kubernetes или Docker Swarm. Использовать без них Docker можно, но почти бессмысленно
Aleksey
Но даже без него можно организовать Canary deployment контейнеров при помощи того-же Ansible/Chef/SaltStack
公墓
Оркестратор это Kubernetes или Docker Swarm. Использовать без них Docker можно, но почти бессмысленно
Я слышал про swarm, но это нужно, насколько я знаю, для сервисов с распределением сервисов по машинам, для масштабируемости. А у меня малая нагрузка ожидается, я привык делать всё через docker-compose.
Niko
https://stackoverflow.com/a/54291684/4711964