Size: a a a

2021 March 01

SE

Stanislav V. Emets in DevOps Moscow
Есть у папета интеграция с VSCode + pdk.
источник

JF

Justice For All in DevOps Moscow
А кто подскажет, существуют какие-либо тулзы для автоматизации следующей задачи:

Имеется набор однотипных (либо различных) тасков (скриптов), которые должны отработать на одном сервере. Для простоты будем считать что это один и тот же скрипт, но с разными параметрами. Допустим у нас 100 таких тасков, но параллельно на сервере можно запускать не больше 5 таких тасков одновременно (т.к. RAM не бесконечный). Вот задача их всех запустить с учетом этих условий. Т.е. стартанули первые 5, допустим первым отработал и завершился 2-ой таск, значит можно запускать 6-ой и так далее.

Я понимаю что это можно запрограммировать используя какой-то движок task queue, но подозреваю что должны быть какие-то готовые менеджеры задач под такие нужды.
источник

JF

Justice For All in DevOps Moscow
Ну и желательно плюсом иметь функции мониторинга и репорта (если такски завершаются с ошибками), ну и гибкость в виде генерирования перечня тасков на основе конф. файлов или бд
источник

ik

iliya karin in DevOps Moscow
Justice For All
Ну и желательно плюсом иметь функции мониторинга и репорта (если такски завершаются с ошибками), ну и гибкость в виде генерирования перечня тасков на основе конф. файлов или бд
Тем же jenkins можно все это описать, или любым другим инструментом CI/CD
источник

R

Rushan in DevOps Moscow
Justice For All
А кто подскажет, существуют какие-либо тулзы для автоматизации следующей задачи:

Имеется набор однотипных (либо различных) тасков (скриптов), которые должны отработать на одном сервере. Для простоты будем считать что это один и тот же скрипт, но с разными параметрами. Допустим у нас 100 таких тасков, но параллельно на сервере можно запускать не больше 5 таких тасков одновременно (т.к. RAM не бесконечный). Вот задача их всех запустить с учетом этих условий. Т.е. стартанули первые 5, допустим первым отработал и завершился 2-ой таск, значит можно запускать 6-ой и так далее.

Я понимаю что это можно запрограммировать используя какой-то движок task queue, но подозреваю что должны быть какие-то готовые менеджеры задач под такие нужды.
источник

TB

Timur Batyrshin in DevOps Moscow
Aslan Tokhchukov
Привет, товарищи. Хочу написать опен-сорсную бесплатную тулзу для запуска команд и скриптов на удаленных тачках по SSH. Вы бы мне очень помогли если бы ответили на следующие вопросы.
1. Возникает ли у вас необходимость запускать команды на нескольких хостах сразу? Если нет, на следующие вопросы можно не отвечать)
2. В каких пределах колеблется количество целевых хостов?
3. Как часто часто вам требуется такое?
4. Была бы вам удобна фильтрация хостов по различным параметрам, например ДЦ, количество ядер, назначение, и др.
5. Какими программами вы пользуетесь чтобы решать подобные проблемы сейчас? (Кастомный баш скрипт каждый раз - считается)
6. Считаете ли вы параллельный запуск скриптов на хостах - существенным преимуществом относительно других программных продуктов?
Ответы на эти вопросы помогут мне прежде всего определить требуется ли вообще что-то, чтобы облегчить вам жизнь) Если тулза и будет, то она однозначно будет CLI, опен-сорсная, бесплатная и без аналитики (я понимаю какого это иметь аналитику на тулзах, которые может быть лезут в прод))
ansible, pssh
источник

AT

Aslan Tokhchukov in DevOps Moscow
Timur Batyrshin
ansible, pssh
Уже подсказали, но спасибо)
источник

TB

Timur Batyrshin in DevOps Moscow
Aslan Tokhchukov
Ну, на таргет-хосты ничего ставить не потребуется.
ансибл может работать и без питона на удаленных хостах. не так круто, но тоже работает
источник
2021 March 02

Н

Никитяо in DevOps Moscow
Aslan Tokhchukov
Спасибо за ответ, возможно он не у всех используется в проде, и ставить его ради такого не все захотят)
зачем его ставить?
источник

Н

Никитяо in DevOps Moscow
Aslan Tokhchukov
Уже подсказали, но спасибо)
есть еще rundeck
источник

JF

Justice For All in DevOps Moscow
А насколько Nomad подойдет для задачи запуска и мониторинга постоянно повторяющихся тасков?

Требования такие:

1. Возможность генерировать очередь из тасков(джобов) динамически на основе данных в БД.
Т.е. чтобы можно было задать какой-то SQL фильтр, который достанет нужные айдишники/параметры из базы. Потом сформировать по общему шаблону командную строку того что будем запускать, подставляя данные из результата SQL-запроса. Т.е. чтоб был какой-то конструктор-шаблонизатор. Далее, досталось 100 записей - значит у нас 100 джобов (тасков) и надо их всех запустить по очереди на конкретном серваке. Вернее, можно и одновременно запускать, но только чтоб настраивался числовой лимит одновременно работающих джобов на конкретном хосте. Отработали все джобы - заново лезем в базу, и SQL-запросом отфильтровываем актуальные записи, и всё по новой. В идеале даже можно не ждать отработки всех джобов чтобы актуализировать текущую очередь, а постоянно обновлять список актуальных задач на лету из базы. Причем в основном это будут всегда одни и те же джобы, которые надо выполнять по кругу, и лишь иногда некоторые будут удалятся или добавляться новые. Т.е. простоя в стиле "висим и ждем задач" не планируется.

2. Возможность настраивать количество параллельно работающих джобов (например - не больше 5, остальные ждут в очереди).

3. Контейнеры не нужны, главное чтоб запускало просто через SSH, либо через какую-то свою ответную серверную часть на хосте.

4. Возможность мониторинга длительно работающих джобов (месяцами) и их перезапуск при падении.

5. Желательно веб/гуй интерфейс на "командном центре" для настройки и наблюдения за всеми процессами.

6. Если сам автоматизатор (фреймворк) остановили, то после перезапуска он сам должен понимать какие джобы в текущий момент еще работают на хосте и не запускал их дубликаты.
Т.е чтобы восстанавливал актуальное состояние очереди и синхронизировал ее с тем что на серваке происходит.
источник

TB

Timur Batyrshin in DevOps Moscow
а вам точно не какой-нибудь airflow нужен?
источник

VS

Vladislav 👻 Shishkov... in DevOps Moscow
+1 за airflow
источник

JF

Justice For All in DevOps Moscow
Timur Batyrshin
а вам точно не какой-нибудь airflow нужен?
Вот я и не знаю какие именно инструменты будут правильными. Даже не знаю как правильно называется класс этих инструментов. Workflow automation? Orchestrators?
источник

JF

Justice For All in DevOps Moscow
еще встречал Workload (а не workflow) automation, но там почти всё платное
источник

JF

Justice For All in DevOps Moscow
А airflow - это просто название конкретной утилиты от Апача, или это общее название подобных утилит как класса?
источник

VS

Vladislav 👻 Shishkov... in DevOps Moscow
первое
источник

TB

Timur Batyrshin in DevOps Moscow
Justice For All
А airflow - это просто название конкретной утилиты от Апача, или это общее название подобных утилит как класса?
https://habr.com/ru/company/mailru/blog/339392/ из топ-5 ссылок из гугла
источник

JF

Justice For All in DevOps Moscow
Timur Batyrshin
https://habr.com/ru/company/mailru/blog/339392/ из топ-5 ссылок из гугла
Да, про airflow уже читаю вот сейчас, спасибо. А может еще и что-то из достойных аналогов airflow можете назвать?
источник

IB

Igor Boyko in DevOps Moscow
Ну звучит как типичный ETL процесс. Это в сторону airflow уж точно. Только главное апачем по все помидоры не обмазаться.
источник