我正在使用Capistrano部署我在Sinatra和Rails中构建的应用程序。有一段时间我已经在部署到config/deploy.rb
期间编写了我需要完成的所有工作。看起来我只是在这里写Rake。我想知道如果我能把这些放在正确的地方,或者如果我能做得更多,我是否能得到一些建议?#Cap; Capistranorish"我的部署。
以下是我在这里做的一些事情。我写了几乎所有我需要部署的内容。
# deploy.rb
task :initctl_reload_configuration do
on roles(:app), in: :sequence do
execute "sudo initctl reload-configuration"
end
end
task :rebuild_sitemap_no_ping do
on roles(:app), in: :sequence do
execute "cd /srv/app/#{environment}/current && RAILS_ENV=#{environment} bundle exec rake sitemap:refresh:no_ping"
end
end
task :rebuild_sitemap do
on roles(:app), in: :sequence do
execute "cd /srv/app/#{environment}/current && RAILS_ENV=#{environment} bundle exec rake sitemap:refresh"
end
end
task :restart_services do
on roles(:app), in: :sequence do
execute "sudo service tomcat6 restart"
execute "sudo service sunspot-solr restart"
execute "sudo service app-#{environment} restart"
execute "sudo service nginx restart"
end
end
答案 0 :(得分:3)
如果你得到了所有内容,可以将其留在deploy.rb
中。
如果你真的想在某个地方移动这些任务,低于Capfile
的内容(你可能在项目的根目录中)应该给你一个提示:
# Load custom tasks from `lib/capistrano/tasks' if you have any defined
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }
所以只需在lib/capistrano/tasks/
中创建一个以.rake
结尾的文件,并且应该这样做!