Tag: capistrano

Capistrano部署:从独角兽开始

使用capistrano进行部署。 一切顺利,然后部署:启动(部署:冷),它会产生一个错误: * ←[32m2013-03-14 15:03:05 executing `deploy:start’←[0m * ←[33mexecuting “/etc/init.d/unicorn_appname start”←[0m servers: [“XXX.XXX.131.4”] [XXX.XXX.131.4] executing command ** [out :: XXX.XXX.131.4] sh: /etc/init.d/unicorn_appname: not found ←[2;37mcommand finished in 1572ms←[0m failed: “sh -c ‘/etc/init.d/unicorn_appname start'” on XXX.XXX.131.4 有问题的文件存在。 这是它的内容: #!/bin/sh ### BEGIN INIT INFO # Provides: unicorn # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: […]

Capistrano部署Wipes数据库?

我已经设法使用Capistrano将我的应用程序部署到生产中,但我不明白如何处理我的数据库。 我正在使用颠覆和乘客。 当我运行cap deploy时,新部署会重新启动所有内容。 它清除了添加到数据库的数据。 显然,必须有一个解决方案,但我很惊讶没有在网上找到关于如何处理这个问题的任何事情。 我已经阅读了Capistrano文档和许多教程。 我能找到的最好的是Advanced Rails食谱书,它讨论了如何将用户生成的内容放入共享目录中,但这并不完全正确。 在使用Capistrano进行部署时,如何处理数据库?

Capistrano 3部署要求SSH密码但不能输入密码

我正在尝试使用Capistrano 3来部署Rails 4应用程序。 #config valid only for Capistrano 3.1 lock ‘3.1.0’ set :application, ‘testapp’ set :scm, :git set :repo_url, ‘git@bitbucket.org:sergiotapia/testapp.git’ set :user, “deploy” # The user on the VPS server. set :password, “hunter2$$” set :use_sudo, false set :deploy_to, “/home/deploy/www/testapp” set :deploy_via, :remote_cache set :pty, true set :format, :pretty set :keep_releases, 1 set :rails_env, “production” set […]

main:Object的未定义方法`run’

部署时我得到以下输出: cap aborted! NoMethodError: undefined method `run’ for main:Object config/deploy.rb:37:in `block (2 levels) in ‘ /var/lib/gems/1.9.1/gems/capistrano-3.2.1/lib/capistrano/dsl/task_enhancements.rb:12:in `block in after’ /var/lib/gems/1.9.1/gems/capistrano-3.2.1/lib/capistrano/application.rb:15:in `run’ /var/lib/gems/1.9.1/gems/capistrano-3.2.1/bin/cap:3:in `’ Tasks: TOP => deploy:permissions (See full trace by running task with –trace) The deploy has failed with an error: # 我正在使用Capistrano版本:3.2.1(耙子版本:10.3.2)。 部署工作正常,但我创建了一个After deploy任务来修改部署版本的所有者,看起来如此: namespace :deploy do task :permissions do run “chown -R […]

capistrano,:db角色,它的用途是什么?

据我所知,capistrano :db角色仅用于运行迁移。 (因此,在大多数情况下,它可能实际上不应该是运行数据库的服务器。为什么你会在那里有ruby / rails堆栈(或允许ssh登录)?它只是你想要实际执行rails迁移的服务器)。 并且仅使用标识为db role with :primary => true的服务器来运行迁移。 因此,任何其他标识为“db”角色但没有:primary => true …的服务器根本不使用任何内容? 那么为什么默认的deploy.rb是由capify .创建的capify . 鼓励你列出它们? 你甚至会在这里列出什么? 我错过了什么?

尝试使用Capistrano 3和rbenv安装rails应用程序

我安装了Ruby 2.1.1的VPS设置,并在本地安装了相同的版本。 我的dev机器运行14.04 Ubuntu报告ruby -v = ruby​​ 2.1.1p76(2014-02-24修订版45161)[x86_64-linux]和rbenv -v = rbenv 0.4.0-97-gfe0b243。 我最初使用刀独奏在服务器上安装了ruby,但似乎capistrano想要照顾这个。 当我运行cap staging deploy时,我收到一个错误 rbenv: cap: command not found The `cap’ command exists in these Ruby versions: 2.1.0 的Gemfile group :development do gem ‘capistrano’, github: ‘capistrano/capistrano’, ref: ‘master’ gem ‘capistrano-rails’, github: ‘capistrano/rails’, ref: ‘master’ gem ‘capistrano-bundler’ gem ‘capistrano-rbenv’, “~> 2.0” end Capfile require […]

使用EC2 + Rails + Nginx + Capistrano重启后Puma重启失败

我已成功使用capistrano将我的rails应用程序部署到Ubuntu EC2。 一切都在部署上很有效。 Rails应用程序名称是deseov12我的问题是Puma没有启动,这将是必要的,因为生产EC2实例将按需实例化。 Puma将在通过Capistrano部署时启动,它也将在运行时启动 cap production puma:start 在本地机器上。 如果我运行以下命令,它也会在重启后在服务器上启动: su – deploy [enter password] cd /home/deploy/deseov12/current && ( export RACK_ENV=”production” ; ~/.rvm/bin/rvm ruby-2.2.4 do bundle exec puma -C /home/deploy/deseov12/shared/puma.rb –daemon ) 我按照Puma丛林工具的指示,使用upstart启动Puma启动,如下所示: /etc/puma.conf的内容 /home/deploy/deseov12/current /etc/init/puma.conf和/home/deploy/puma.conf的内容 # /etc/init/puma.conf – Puma config # This example config should work with Ubuntu 12.04+. It # allows you to […]

与capistrano一起上演和现场应用

我以为我会做一个简单但可能非常有用的事情,并创建另一个名为live的符号链接,它指向一个任意的版本,并保持当前通常位于的头部: 20120519235508 20120521004833 20120521024312 <– live 20120521025150 20120521030449 <– current 然后我配置了www.mysite.com来点击 live/public 和stage.mysite.com一起来 current/public 不幸的是,两个主机似乎运行相同的应用程序,而不是2个不同的应用程 我已经确认httpd.conf具有正确的设置并重新启动它。 但是没有变化,他们仍然运行相同的应用程序,当前/公共引用的应用程序是准确的。 我不知道我是否设置错误,或者是否需要重新启动其他东西,或者这根本不能像我想象的那样工作。 我正在使用乘客。 有人可以对这个问题有所了解,因为对于许多项目来说,这种配置对我来说非常有用。

Capistrano 3 SSHKit :: Runner :: ExecuteError:在host 代理上执行时发生exception无法使用请求的身份对数据进行签名

我将rails应用程序部署到ubuntu服务器时遇到以下错误,我已经正确设置了ssh密钥,我可以ssh到服务器但是当我尝试做的时候我得到以下内容 cap production deploy 这是错误消息 cap aborted! SSHKit::Runner::ExecuteError: Exception while executing on host xxxxxx.xxxxxxx.xxx: agent could not sign data with requested identity 自从我之前部署以来,我无法弄清楚我做错了什么,我只需要将我的应用程序更新为我所做的更改。 自从我上次部署以来,我没有更改deploy.rb,Capfile或deploy / production.rb文件

capistrano deploy_symlink失败

这是我的第一次部署。 我做了一个cap deploy:setup工作正常。 然后,当我尝试执行cap deploy:update我遇到错误消息。 有点像 rm: cannot remove `/var/www/app_name/current’: Is a directory 这是我的capfile和目录权限。 http://pastie.org/1189919 一般而言,就部署用户和权限而言,最佳做法是什么? 我应该使用root还是创建不同的用户。 如果不同的用户需要具备哪些确切权限? 谢谢