У меня есть общие задачи между моими сценариями развертывания и производства. Какова наилучшая практика написания общих задач? Нужно ли переместить их в отдельный файл под номером /lib/capistrano/tasks
? И если да, то как мне это сделать? Я имею в виду, что будет расширением файла и как пропустить эти задачи и получить к ним доступ через команду cap
?Capistrano: Как поделиться задачами Capistrano?
ответ
Типичная многоступенчатой конфигурации Capistrano будет иметь следующие файлы:
Capfile
config/deploy.rb
config/deploy/staging.rb
config/deploy/production.rb
Задачи помещены в staging.rb
или production.rb
доступны только в этих средах.
Если вы хотите, чтобы некоторые задачи были доступны любой среде, вы можете поместить их в config/deploy.rb
.
Если вы хотите извлечь их в отдельный файл, то, как вы сказали, вы можете разместить их в lib/capistrano/tasks/*.rake
. (Обычно Capfile
должен содержать строку для загрузки этих задач.)
Например, есть индивидуальная задача unicorn:restart
, которая перезапускает Единорог. Мы можем создать файл с именем lib/capistrano/tasks/unicorn.rake
, и добавьте следующий файл:
namespace :unicorn do
desc "Restart Unicorn"
task :restart do
# ...
end
end
EDIT
Вы можете добавить следующую строку в Capfile
, чтобы загрузить общие задачи в lib/capistrano/tasks/*.rake
.
# Load custom tasks from `lib/capistrano/tasks' if you have any defined
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }
Я редактировал ответ чтобы добавить необходимую информацию, которую я искал, и пометил ваш вопрос как принятый. Спасибо Домону! –
- 1. Как справиться с одноразовыми задачами развертывания с помощью capistrano?
- 2. Capistrano 3 альтернатива существующему? Capistrano 2 Метод
- 3. Вызов многоступенчатой задачи capistrano из задачи capistrano
- 4. Развертывание с capistrano и rvm-capistrano
- 5. Рельсы развертывания Capistrano - capistrano/cli (LoadError)
- 6. Отладка Capistrano
- 7. Capistrano и Bitbucket Развертывание
- 8. Команды Capistrano
- 9. Ошибка Capistrano
- 10. Конфигурация Capistrano
- 11. Capistrano жалуется
- 12. развертывание capistrano
- 13. Написание всего приложения поверх Capistrano
- 14. Capistrano 3, используя upload! в задаче в lib/capistrano/tasks
- 15. Capistrano Deploy Wipes Database?
- 16. remote_file Capistrano 3 Метод
- 17. преобразование capistrano v2 deploy.rb в capistrano v3 deploy.rb
- 18. Capistrano не может загрузить subversion - capistrano.3.x
- 19. Rails capistrano deploy issue, неверная версия номер строки Capistrano
- 20. Передача параметров Capistrano
- 21. Как записать результат развертывания capistrano?
- 22. Как использовать Capistrano в Rails4
- 23. Как установить подкаталоги в Capistrano?
- 24. Распределение Capistrano, обнаруженное как shellshock
- 25. Встроенные переменные capistrano
- 26. Capistrano 3 Войти оболочки
- 27. Capistrano fetch с блоком
- 28. Лучшая практика безопасности Capistrano
- 29. capistrano, unix user, permissions
- 30. Capistrano & Puma, конфигурация
Это сообщение стоит прочитать: http://vladigleba.com/blog/2014/04/10/deploying-rails-apps-part-6-writing-capistrano-tasks/ – zx1986