часто задачи не атомарны и очень разные • Чтобы его использовать надо быть сисадмином: • Иметь доступ к системе (удаленный или локальный) • Иметь учетную запись в системе • Иметь доступ к чтению логов • Иногда иметь права запускать ваши задачи • Уметь читать и писать вот такое: for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done (с) stackoverflow.com
встроенных инструментов – set +e и || наше все • По умолчанию нотификация только на почту (локальный mail- server) • Если у нас IaC, то скорее всего мы храним скрипты джоб в инфраструктурном коде
• Имеется плагин для нотификаций (в т.ч. для Telegram) • Позволяет делать выпадающие списки на основе результата запроса • Обладает RESTful API • Интегрируется с Service Discovery (Consul)
способов зарегистрировать сервис: - curl - есть библиотеки для большинства языков - для сервисов на Docker есть registrator (см. ссылки) - наш метод - регистрация через SystemD при развертывании сервиса
старте с соответствующими тэгами • Rundeck берет из Consul список сервисов-тэгов • Запускаем соответствующую задачу из Rundeck для всех инстансов сервиса • При остановке сервиса, он пропадает из Consul и соответственно Rundeck
обработки ошибок, логов (i.e. ротация системных логов) • у вас есть нормальный сбор логов и контроль, и вы в нем уверены Недопустимо: • неудачный запуск может повлиять на бизнес (запуск задачи с бизнес логикой) • задачи пишутся-используются совместно с разработкой или другими подразделениями • нужна общедоступная статистика по выполнению