ruby-on-rails – Capistrano Deploy – Net :: SSH :: Authenti
发布时间:2020-12-16 20:25:37 所属栏目:百科 来源:网络整理
导读:当我尝试运行部署设置时,为什么我得到认证失败?我正在使用ssh作为我的密码.我需要更改 database.yml或deploy.rb中的任何内容.它们列在下面. $cap deploy:setup * executing `deploy:setup' * executing "sudo -p 'sudo password: ' mkdir -p /var/www/apps/
当我尝试运行部署设置时,为什么我得到认证失败?我正在使用ssh作为我的密码.我需要更改
database.yml或deploy.rb中的任何内容.它们列在下面.
$cap deploy:setup * executing `deploy:setup' * executing "sudo -p 'sudo password: ' mkdir -p /var/www/apps/sample_app /var/www/apps/sample_app /releases /var/www/apps/sample_app/shared /var/www/apps/sample_app/shared/system /var/www /apps/sample_app/shared/log /var/www/apps/sample_app/shared/pids" servers: ["ec2-20-21-42-51.compute-1.amazonaws.com"] Password: connection failed for: ec2-20-21-42-51.compute-1.amazonaws.com (Net::SSH::AuthenticationFailed: ubuntu) deploy.rb # The name of your app set :application,"sample_app" # The directory on the EC2 node that will be deployed to set :deploy_to,"/var/www/apps/#{application}" set :keep_releases,3 # deploy with git set :scm,:git set :repository,"git@github.com:username/sample_app.git" set :git_shallow_clone,1 set :branch,"master" set :use_sudo,true set :user,"ubuntu" ssh_options[:forward_agent] = true default_run_options[:pty] = true # The address of the remote host on EC2 (the Public DNS address) set :location,"ec2-20-21-42-51.compute-1.amazonaws.com" # setup some Capistrano roles role :app,location role :web,location role :db,location,:primary => true after 'deploy:update_code','deploy:symlink_db' namespace :deploy do desc "Restart Application" task :restart,:roles => :app do run "touch #{deploy_to}/#{shared_dir}/tmp/restart.txt" end desc "Symlinks the database.yml" task :symlink_db,:roles => :app do run "ln -nfs #{deploy_to}/shared/config/database.yml #{release_path}/config/database.yml" end end database.yml的 development: adapter: mysql2 database: db/development.mysql2 pool: 5 timeout: 5000 database: sample_app username: root socket: /tmp/mysql.sock test: adapter: mysql2 database: db/test.mysql2 pool: 5 timeout: 5000 database: sample_app username: root socket: /tmp/mysql.sock production: adapter: mysql2 database: db/production.mysql2 pool: 5 timeout: 5000 database: sample_app username: ubuntu socket: /var/run/mysqld/mysqld.sock 解决方法
对于Capistrano v2
指定您的pem文件的位置 ssh_options[:keys] = ["/where/ever/it/is/key.pem"] 对于Capistrano v3 set :ssh_options,{ keys: %w(/where/ever/it/is/key.pem),forward_agent: false,user: 'ubuntu' } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容