Tag: 卡皮斯特拉诺

Capistrano部署到同一个Cloud Service上的许多节点

我在Azure上有一个Cloud Service,包含许多实例,每个实例都具有相同的地址,例如。 mycloudservice.cloudapp.net但是在随机端口上公开ssh服务,以便可以从外部访问任何实例。 问题是Capistrano不喜欢这个命名,更清楚: 使用不同的名称一切正常 server ‘myservice0.cloudapp.net’, user: ‘azureuser’, roles: %w{web} server ‘myservice1.cloudapp.net’, user: ‘azureuser’, roles: %w{web} 但是当我使用不同端口的相同名称时,Capistrano认为我只是重新定义了以前的服务器,所以它最终仅使用最后一个服务器 server ‘myservice.cloudapp.net’, port: 53458, user: ‘azureuser’, roles: %w{web} server ‘myservice.cloudapp.net’, port: 62434, user: ‘azureuser’, roles: %w{web} 是否有任何工作来定义具有相同名称的多个服务器?

无法加载此类文件 – capistrano / setup(LoadError)

我关注https://gorails.com/deploy/ubuntu/16.04 最初我有一个版本的capistrano 3.8.1,我的问题最初是: nicoara@ubuntu:~/deploy_test$ cap install STAGES=production /home/nicoara/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require’: cannot load such file — capistrano/cli (LoadError) 我用“gem install rvm-capistrano”来解决这个问题,它安装了另一个版本的capistrano,2.15.6,现在的错误是: nicoara@ubuntu:~/deploy_test$ cap install STAGES=production: `require’: cannot load such file — capistrano/setup (LoadError) 在这一点上我无法解决。

Ruby on Rails *function*部署的最佳实践?

我们在服务器上运行2个不同的环境 – 比如production.mydomain.com和staging.mydomain.com 暂存环境几乎与生产环境相同,只是它通常有几个正在审查的新function(例如new_user_profile,image_tagging等)。 这些function在不同时间由客户单独接受。 将任何单个function(例如new_user_profile)从暂存升级到生产的最佳方法是什么? 我们的设置如下所示,但您也希望听到您使用的替代方案: Ruby on Rails Git(我们有几个function分支,在接近完成时会合并到一个“分段”分支) Capistrano,多阶段分机。 我们尝试了以下两种方法,两种方法都不是很好: 在我们的代码中有很多if / else语句,例如new_user_profile …. 将各个git分支(例如,分支new_user_profile)部署到分段,进行审核,然后合并到生产

Capistrano:deploy.rb文件重构

我在deploy.rb中有以下代码 namespace :app do desc “copies the configuration frile from ~/shared/config/*.yml to ~/config” task :copy_config_files,:roles => :app do run “cp -fv #{deploy_to}/shared/config/hoptoad.rb #{release_path}/config/initializers” run “cp -fv #{deploy_to}/shared/config/app_config.yml #{release_path}/config/app_config.yml” end end 我认为保持deploy.rb文件干净是个好主意,我试图在config下面将代码移到capistrano_utilities.rb之上。 我正在使用Rails应用程序。 我将以下代码行添加到deploy.rb中 require File.expand_path(File.dirname(__FILE__) + “/../lib/capistrano_utilities”) 现在我收到了以下错误。 undefined method `namespace’ for main:Object (NoMethodError) deploy.rb中self的值是Capistrano :: Configuration。 虽然capistrano_utilities中self的值是Main。 所以我理解为什么我得到名称空间方法错误。 这个问题的解决方法是什么?

Rails 3.2.13 – 资产不在生产中显示

我花了一整天的时间试图找出这个问题,但没有任何积极的结果。 当我加载我的网站时,没有CSS,图像或工作的JavaScript。 该应用程序在Rails 3.2.13和Capistrano 2上运行。 这是我的设置: 配置/环境/ production.rb Appname::Application.configure do config.cache_classes = true config.consider_all_requests_local = false config.action_controller.perform_caching = true #config.serve_static_assets = false config.serve_static_assets = true config.assets.compress = true config.assets.compile = true config.assets.precompile = [‘*.js’, ‘application.css’, ‘styles.css.scss’, ‘*.css.erb’] config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif *.svg *.woff *.ttf *.ico) config.assets.digest = true config.cache_store = :memory_store config.i18n.fallbacks = […]

如何向Capistrano任务添加if登台检查?

现在在卡皮斯特拉诺,我做到了 execute “echo #{fetch(:stage)}” 这回应了“升级” 在下一行我有 if fetch(:stage) == “staging” 这永远不等于真实。 我尝试将其更改为if “staging == “staging”并且它进入它的主体。呃,是什么给出了我如何检查只运行一行代码进行分段。

运行cap生产部署时,Ruby on Rails Capistrano’无法找到Gemfile’错误:initial

我正在尝试启动RoR应用程序并在运行cap生产部署时遇到以下错误:initial [] 我对RoR和整体设置都很陌生,所以我无法提供更多细节但能够回答问题。 INFO [ac02eabc] Running ~/.rvm/bin/rvm default do bundle install –path /home/deploy/apps/Interface/shared/bundle –without development test –deployment –quiet on 178.62.51.103 DEBUG [ac02eabc] Command: cd /home/deploy/apps/Interface/releases/20151022000628 && ~/.rvm/bin/rvm default do bundle install –path /home/deploy/apps/Interface/shared/bundle –without development test –deployment –quiet DEBUG [ac02eabc] Could not locate Gemfile DEBUG [ac02eabc] (Backtrace restricted to imported tasks) cap aborted! SSHKit::Runner::ExecuteError: Exception […]

Capistrano登录Net :: SSH失败

突然,Capistrano开始回复SSH问题: 回滚时出现[deploy:update_code]exception:Capistrano :: ConnectionError,连接失败:staging.myserver.com(Net :: SSH :: AuthenticationFailed:root)连接失败:staging.myserver.com(Net :: SSH :: AuthenticationFailed:root) 我的deploy.rb包含: require ‘capistrano/ext/multistage’ ssh_options[:forward_agent] = true ssh_options[:keys] = [“myserver_rsa”] set :stages, [“staging”, “production”] set :default_stage, “staging” set :scm, “git” set :application, “myapp” set :repository, “git@bitbucket.org:project/myapp.git” set :use_sudo, false set :deploy_via, :remote_cache 在我的config / deploy / staging.rb server ‘staging.myserver.com’, :app, :web, :db, primary: true […]

连接失败:localhost(Errno :: ECONNREFUSED:连接被拒绝 – 连接(2))

我正在使用capistrano 2.15.5进行我的rails应用程序部署。 我使用localhost作为服务器,并尝试用127.0.0.1代替localhost。 After running *cap production deploy:setup* the error that i am getting is: **Errno::ECONNREFUSED: Connection refused – connect(2)**. 在搜索之后我发现ECONNREFUSED意味着客户端无法与服务器建立TCP连接,因为它已关闭,或者DNS无法解析。 。 如何解决这个问题? 谢谢。

有没有更好的方法从rake中运行capistrano任务?

我有一组rake任务,我需要在某些时候调用capistrano。 Edwin Goei的博客建议通过“sh”向capistrano炮轰。 有更简单的方法吗? 看起来你应该能够以编程方式调用适当的任务。 提前致谢。