Как запустить задачу capistrano на старте сервера?
Я думал об этом и искал это в течение многих веков, ничего не находя, поэтому я собираюсь предположить, что я попал в проблему XY.
Позвольте мне описать мою проблему, это звучит достаточно распространенно.Мы используем capistrano
для развертывания нашего веб-приложения и БД. Важная часть заключается в том, что у нас есть выделенный сервер для отложенных заданий, и мы используем capistrano
для развертывания на нем и запуска/перезапуска процессов. Это пользовательское число работников с 2 различными Gemfile
S и 3 очередями.
То, что я хочу do состоит в том, чтобы запустить их при перезагрузке сервера или, более того, на сервере clone + start.
Я попытался вызвать cap production delayed_job:custom_start
с самого сервера.. ничего не вышло. (В этом суть моей проблемы ху отрегулировать вопрос). Не уверен, что это вообще имеет смысл. Но я хочу знать, возможно ли это. custom_start
- это задача, с которой начинается наш набор работников.
В качестве альтернативы я думаю абстрагировать код в задачу rake
или сценарий или что-то еще и вызвать его из как capistrano
, так и где бы то ни было мне нужно было бы добавить его, чтобы начать при запуске. Есть ли в этом больше смысла?
Edit: только что нашел этот пост.. обескураживающий..
Я просто хочу уточнить, что когда я говорю сервер, я имею в виду мой экземпляр Machine/ec2, а не перезапуск моего веб-приложения.2 ответа:
Мои задания Jenkins deploy завалены прямыми задачами, которые разработчики могут вызывать, например, Cap dev app:fetch_logs, cap qa sanitize_environment и т. д.
Эта особенность Капистрано проста и проверена.
Я предполагаю, что вы хотите использовать Capistrano для настройки rc.D файлы. Да, вы можете это сделать. Следует ли вам использовать chef / puppet в этот момент? Считать. Scalr/RightScale, позволяющее производить несколько потех вещи посмотреть тоже.
Вы можете добавить сценарий bash в качестве .erb шаблон для всех ваших рабочих переменные, а затем поместите загрузить скрипт в каталог deploy_to. Наконец, вы можете настроить другую задачу (#{sudo}) для внедрения rc.D обертки в rc.d. или вы, а не РК.фантики D для вас баш скрипт, просто вызвать скрипт из RC.д-местный. Вы можете использовать sed для добавления к rc.д-местный.