ruby-on-rails - 如何在不提示输入密码的情况下部署 Capistrano?

标签 ruby-on-rails ruby deployment capistrano

当我在过程即将结束的某个时刻运行 cap deploy 时,我收到密码提示...

 ** keeping 5 of 6 deployed releases
  * executing "sudo -p 'sudo password: ' rm -rf /opt/deployed_rails_apps/myapp/releases/20120922200242"
    servers: ["myhost.com"]
    [username@myhost.com] executing command
Password:

有没有一种方法可以在不提示我输入密码的情况下完成它?

这是我的deploy.rb...

require "bundler/capistrano"

require "rvm/capistrano"

set :rvm_ruby_string, 'ruby-1.9.3-p194@run_passenger'

set :rvm_type, :user

set :application, 'myapp'

set :repository, 'git@github.com:fakename/myrepository.git'

set :deploy_to, "/opt/deployed_rails_apps/#{application}"

set :scm, "git"
set :branch, "master"

set :deploy_via, :remote_cache

set :keep_releases, 5
after "deploy:update", "deploy:cleanup"

load 'deploy/assets'

role :app, 'username@myhost.com'
role :web, 'username@myhost.com'

namespace :deploy do

  task :start, :roles => :app do
    run "touch #{current_release}/tmp/restart.txt"
  end

  task :stop, :roles => :app do
    # Do nothing.
  end

  desc "Restart Application"
  task :restart, :roles => :app do
    run "touch #{current_release}/tmp/restart.txt"
  end

end

最佳答案

假设您的部署用户具有适当的权限并且您不需要使用 sudo,您可以将 :use_sudo 设置为 false,Capistrano 将不会使用它。

只需添加

set :use_sudo, false

到你的deploy.rb

关于ruby-on-rails - 如何在不提示输入密码的情况下部署 Capistrano?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12557034/

相关文章:

ruby-on-rails - Rails 3.1 为 Facebook 路由混淆设计 Oauth

ruby-on-rails - Ruby on Rails 循环大量记录时出现内存泄漏; find_each 没有帮助

php - 批量检查一百万个域的 HTTP header

mysql - 使用现有数据库的 active_admin 应用程序

ruby-on-rails - 在postgresql carrierwave中逐行读取存储的文件

python - 有没有办法在结构文件中进行滚动部署?

asp.net - 匹配 web.config 转换中的元素名称

jquery - Rails : f. 关联和可点击图像

ruby-on-rails - Rails 5.1 minitest 展平 params 中的数组数组

c++ - 升级到 .NET 4.5 后部署项目中对 .NET 的不必要依赖