Tag: 卡皮斯特拉诺

cap命令未找到

我正在使用Mac OS X 10.8.2,我用rbenv安装了ruby和rails。 我尝试安装capistrano gem install capistrano 成功安装了capistrano-2.13.5 安装1个gem 为capistrano-2.13.5安装ri文档… 为capistrano-2.13.5安装RDoc文档… 每当我尝试使用代码安装时,它会说“安装1个gem”。 但是,如果我写 capify . 我收到这样的错误。 zsh:找不到命令:capify 我的$ PATH /Users/lutfidemirci/.rbenv/bin:/Users/lutfidemirci/.rbenv/shims:/Users/lutfidemirci/.rbenv/shims:/Applications/Postgres.app/Contents/MacOS/bin:/Users/lutfidemirci/.rbenv /bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/var/lib/gems/1.8/bin

仅在特定服务器上调用delayed_job capistrano任务

我有一个用于delayed_job任务的专用服务器。 我想只在这台服务器上启动,停止和重启delayed_job worker。 我正在使用delayed_job提供的capistrano食谱。 当我只有1台服务器时,这是我的配置: before “deploy:restart”, “delayed_job:stop” after “deploy:restart”, “delayed_job:start” after “deploy:stop”, “delayed_job:stop” after “deploy:start”, “delayed_job:start” 现在我想让这些钩子只适用于一个单独的delayed_job服务器( role :delayed_job )。 这可能优雅吗? 我是否必须在meta任务中包装每个delayed_job任务? 或者写我自己的任务而不是使用延迟工作提供的任务?

使用Capistrano 3设置默认阶段

有没有办法在Capistrano 3中设置默认阶段? 我试过把set :stage, :production ,:在deploy.rb中生成,但是没有用,它给出了错误: Stage not set, please call something such as `cap production deploy`, where production is a stage you have defined 我现在只有一个阶段,所以我希望能够运行cap deploy并让它在默认情况下执行。

/ usr / bin / env ruby​​没有这样的文件或目录:使用capistrano 3,capistrano / rbenv,capistrano / bundler和capistrano / rails(使用rails 4)

我正在使用capistrano,capistrano / rbenv,capistrano / bundler和capistrano / rails。 我在capistrano编译资产的步骤中收到此错误: DEBUG [49a50df6] /usr/bin/env: DEBUG [49a50df6] ruby DEBUG [49a50df6] : No such file or directory DEBUG [49a50df6] 在生产服务器/usr/bin/env ruby -v是正确的。 我知道这一点: 为什么 – 做什么 – 在我的ssh-session中工作 – 但不是在capistrano但我无法让它工作。 这是我的Capfile : # Load DSL and Setup Up Stages require ‘capistrano/setup’ # Includes default deployment tasks require ‘capistrano/deploy’ # Includes […]

样式表或JavaScript文件的Rails 404错误

Rails无法在生产中加载(404错误)CSS和JS文件,但在开发中加载它们没有问题。 我正在使用Capistrano进行部署和运行Rails 3.我的开发路径是/ www / myapp,但我的生产路径是/ www / myapp / current 。 应用程序本身似乎工作正常,因此问题似乎与CSS / JS文件隔离。 我尝试在环境/ production.rb中将RAILS_ROOT变量设置为/ www / myapp / current ,但它没有任何区别,文件仍然无法加载。 这是生产日志中的完整堆栈: Started GET “/stylesheets/scaffold.css?1280867531” for 98.173.61.21 at 2010-08-04 17:04:05 -0700 ActionController::RoutingError (No route matches “/stylesheets/scaffold.css”): /usr/local/rvm/gems/ruby-1.9.2-rc2/gems/actionpack-3.0.0.beta4/lib/action_dispatch/middleware/show_exceptions.rb:55:in `call’ /usr/local/rvm/gems/ruby-1.9.2-rc2/gems/railties-3.0.0.beta4/lib/rails/rack/logger.rb:14:in `call’ /usr/local/rvm/gems/ruby-1.9.2-rc2/gems/rack-1.1.0/lib/rack/runtime.rb:17:in `call’ /usr/local/rvm/gems/ruby-1.9.2-rc2/gems/rack-1.1.0/lib/rack/lock.rb:11:in `block in call’ :10:in `synchronize’ /usr/local/rvm/gems/ruby-1.9.2-rc2/gems/rack-1.1.0/lib/rack/lock.rb:11:in `call’ /usr/local/rvm/gems/ruby-1.9.2-rc2/gems/railties-3.0.0.beta4/lib/rails/application.rb:145:in `call’ /usr/local/rvm/gems/ruby-1.9.2-rc2/gems/railties-3.0.0.beta4/lib/rails/application.rb:81:in […]

在Capistrano 3中永久切换用户(单独授权和部署)

我们在服务器管理中有以下模式 – 所有用户都有自己的用户,但部署完全由特殊部署用户执行,没有直接登录的可能性。 我们在Capistrano 2.x中使用了这种方法: default_run_options[:shell] = “sudo -u deploy bash” $ cap stage deploy -s user=thisisme 我知道Capistrano 3.x有直接切换用户的方法: task :install do on roles(:all) do as :deploy do execute :whoami end end end 但是此代码将填充所有任务,并且默认任务无论如何都不会inheritance部署用户。 是否可以直接设置登录用户而无需将此代码拖到每个任务中?

创建Capistrano任务,根据角色执行不同的任务

我正在寻找一种方法来调用单个Capistrano任务来执行不同角色的不同操作。 Capistrano能够做到这一点,还是我为每个角色编写了一个特定的任务?