Tag: capistrano

使用capistrano在ec2上部署rails网站,但它没有显示在浏览器上,这里是网站 – > http://passionate4.net/

我正在使用apache乘客来部署rails应用程序。 我已经清楚地遵循了每一步,一切正常。 部署中没有错误消息。 但该网站没有出现在浏览器上。 这是文件 $ sudo cat /etc/apache2/sites-available/capi_app ServerName www.passionate4.net DocumentRoot /var/www/apps/capi_app/public RailsEnv production Allow from all Options -MultiViews 我也试图改变 $ sudo cat / etc / apache2 / sites-available / capi_app ServerName www.passionate4.net DocumentRoot /var/www/apps/capi_app/current/public RailsEnv production Allow from all Options -MultiViews – >有了这个,当我重新启动apache时,我没有得到错误(/ / / public)不存在,但是站点仍然没有显示出来。 @马丁 $ sudo cat / etc / […]

Capistrano Multistage部署到错误的目录

我最近更新我的gem后,我的capistrano设置有一些问题。 我有一个多阶段设置,包括生产和分段设置。 /config/deploy.rb # setup multistage set :stages, %w(testing production) set :default_stage, “testing” require ‘capistrano/ext/multistage’ /config/deploy/production.rb # Set deploy path set :deploy_to, “/var/www/mysite/live” set :rails_env, “production” /config/deploy/testing.rb # Set deploy path set :deploy_to, “/var/www/mysite/test” set :rails_env, “test” 问题是它似乎忽略了我的deploy_to设置。 它只是部署到默认的/ u / apps / mysite。 我不知道它是否有任何相关性,所有这一切的原因都是从apache + passenger到nginx + unicorn的转变。 我不认为它与此有任何关系,因为这只是结帐过程。

使用Capistrano在Heroku上部署?

我仍然习惯了Rails开发生态系统。 最近我学会了如何使用capistrano使用apache和passenger来部署到我的服务器,我喜欢如何将一组相当复杂的部署指令放到我的deploy.rb中,以便它们通过单个“cap deploy”调用执行,如果出现任何问题,可以自动回滚。 现在我正在考虑在Heroku上部署我的项目,我希望能够在那里使用capistrano进行部署。 但我一直无法找到有关如何执行此操作的任何文档。 可能吗? 是否有capistrano任务可以让我在Heroku上自动部署? 这甚至有意义吗? 毕竟capistrano以特定的方式工作(ssh进入服务器)并假设一个特定的目录结构(公共/发布/共享等)。 据我所知,Heroku无法实现这两个目标。 但我仍然希望有capistrano的便利。 我知道我可以将部署所需的步骤(git push / migrate / restart resque workers …)放到一个rake任务中,我可以通过调用单个命令来部署; 但我不会受益于capistrano交易和回滚,这在我看来非常重要。 我可能遗漏了一些关于这些技术如何融合在一起的非常基础的东西。 令我感到惊讶的是,我无法在任何地方找到关于这个主题的任何讨论。 谁能分享他们的经历?

Sidekiq部署到多个环境

(请参阅下面的详细配置,这是Henley Chiu回答的结果)。 我一直试图将我的大脑包裹在Sidekiq部署,我并没有真正得到它。 我在同一台服务器上有一个带有暂存环境和生产环境的应用程序。 我所看到的关于sidekiq部署的所有内容基本上都说“只需将sidekiq / capistrano添加到您的部署文件中”,所以我就这样做了。 然后说明是“这里是带有选项的yml文件”,但似乎没有解释。 我需要命名空间吗? 我在初始化文件中看到,但这似乎是指向服务器外部。 我之前部署过,每个阶段似乎都在适当的环境下启动sidekiq,但它们都从相同的队列进行处理。 我的生产电子邮件试图由舞台sidekiq处理,但失败了。 我暂时停止了我的舞台,但最终我还需要再次使用它。 我希望自己不会变得密集,我真的试图理解这一点,并且我很难找到一个明确的“这就是它的完成方式”。 对于它的价值,这里是config / sidekiq.yml(在部署期间加载正常): :concurrency: 5 :verbose: false :pidfile: ./tmp/pids/sidekiq.pid :logfile: ./log/sidekiq.log :queues: – [carrierwave, 7] – [client_emails, 5] – [default, 3] staging: :concurrency: 10 production: :concurrency: 25 日志文件和pid似乎在正确的位置,但队列只是合并。 任何帮助都会很棒! 此外,如果重要: Rails 3.2.11, passenger, nginx, rvm, Ubuntu 12.10, and Ruby 1.9.3 详细配置(答案): […]

在此上下文中不允许使用Capistrano映射进行部署时出现psych.rb错误

我正在尝试将Rails应用程序部署到CentOS 6 / nginx / passenger服务器,但是cap部署:冷却给我一个错误。 以下是部署输出的相关部分: * 2013-03-31 17:49:59 executing `deploy:assets:update_asset_mtimes’ * executing “[ -e /home/appuser/apps/britaincares/shared/assets/manifest.yml ] && cat /home/appuser/apps/britaincares/shared/assets/manifest.yml || echo” servers: [“www.britaincares.co.uk”] [www.britaincares.co.uk] executing command command finished in 303ms *** [deploy:update_code] rolling back * executing “rm -rf /home/appuser/apps/britaincares/releases/20130331164733; true” servers: [“www.britaincares.co.uk”] [www.britaincares.co.uk] executing command ** [out :: www.britaincares.co.uk] /home/appuser/.bashrc: eval: line 26: […]

使用Capistrano将Rails应用程序部署到多个Web服务器

我目前正在为Rails应用程序设置一个新的生产环境,该应用程序包括多个负载均衡的应用程序服务器(目前只有两个,但随着时间的推移会增加)。 我想使用Capistrano(我已经用于现有的单一服务器)在单个命令中处理应用程序到所有这些服务器的部署。 我能看到这样做的唯一方法是使用capistrano-ext (我实际上已经用它来部署到我的测试和登台环境),为每个应用服务器( app1 , app2等)定义一个新的“环境”并使用以下内容执行部署: cap app1 app2 app3 deploy 这是推荐的做法还是有更好的方法?

使用Capistrano开始后台任务

对于我的RubyOnRails-App,我必须在Capistrano部署结束时开始后台工作。 为此,我在deploy.rb中尝试了以下内容: run “nohup #{current_path}/script/runner -e production ‘Scheduler.start’ &”, :pty => true 有时它可以工作,但大多数情况下它不会启动过程(=未在ps -aux中列出)。 并且没有错误消息。 没有nohup.out,不在主目录中,也不在rails app目录中。 我尝试在scheduler.rb中使用trap(’SIGHUP’,’IGNORE’)而不是nohup,但结果是一样的。 让它工作的唯一方法是删除“:pty => true”并在“cap deploy”结束时执行手动Ctrl-C。 但我不喜欢这个…… 还有其他机会调用此Scheduler.start吗? 或者获取更多错误消息? 我在服务器上使用Rails 2.3.2,Capistrano 2.5.8,Ubuntu Hardy

Capistrano + Git:生产服务器本地的存储库

我正在尝试为我的应用程序“部署:冷”。 git repo对我的部署服务器是本地的(即我只有一台服务器用于所有东西而且我没有在github上托管我的代码)。 这是成绩单(用“myapp”替换我的应用名称以获取隐私) * executing `deploy:cold’ * executing `deploy:update’ ** transaction: start * executing `deploy:update_code’ executing locally: “git ls-remote /home/mrichman/git/myapp.git master” fatal: ‘/home/mrichman/git/myapp.git’ does not appear to be a git repository fatal: The remote end hung up unexpectedly *** [deploy:update_code] rolling back * executing “rm -rf /var/www/myapp.com/releases/20100218203108; true” servers: [“myapp.com”] Password: [myapp.com] executing command […]

Capistrano的Carrierwave文件

我正在使用带有资产和载波的rails 3.2来上传一些图像,它们存储在/ public / uploads / photo / …..但当我执行上限时:部署(使用capistrano)我的当前目录应用程序不包含我上传的文件,因为capistrano制作了新版本…. ===更新=== 毕竟我用这个: inside:deploy命名空间 task :symlink_uploads do run “ln -nfs #{shared_path}/uploads #{release_path}/public/uploads” end 之后: after ‘deploy:update_code’, ‘deploy:symlink_uploads’ ===重新更新=== @tristanm的解决方案是解决这个问题的最佳方法。

重启Unicorn问题(capistrano)

我在deploy.rb中有以下设置来重启我的服务器: namespace :deploy do task :restart do run “if [ -f #{unicorn_pid} ] && [ -e /proc/$(cat #{unicorn_pid}) ]; then kill -USR2 \`cat #{unicorn_pid}\`; else cd #{deploy_to}/current && bundle exec unicorn -c #{unicorn_conf} – E #{rails_env} -D; fi” end end 但它不起作用。 我的意思是该命令执行(它询问密码并且没有错误),但是配置文件中的所有更改仍然被忽略(即工作进程数或数据库设置)。