Vagrant 在流浪环境中消除mkdir命令的capistrano密码确认
我使用了两个相同的流浪者盒子,用于测试capistrano部署过程。我可以成功地将应用程序从Vagrant 在流浪环境中消除mkdir命令的capistrano密码确认,vagrant,capistrano,Vagrant,Capistrano,我使用了两个相同的流浪者盒子,用于测试capistrano部署过程。我可以成功地将应用程序从devbox部署到prodbox。然而,我无法摆脱密码确认 就我从输出中所见,当部署进程试图运行mkdir-p/capistrano/tmp时,就会发生确认,如下所示 $ bundle exec cap production deploy --trace ** Invoke production (first_time) ** Execute production ** Invoke load:defau
dev
box部署到prod
box。然而,我无法摆脱密码确认
就我从输出中所见,当部署进程试图运行mkdir-p/capistrano/tmp
时,就会发生确认,如下所示
$ bundle exec cap production deploy --trace
** Invoke production (first_time)
** Execute production
** Invoke load:defaults (first_time)
** Execute load:defaults
** Invoke deploy (first_time)
** Execute deploy
** Invoke deploy:starting (first_time)
** Execute deploy:starting
** Invoke deploy:check (first_time)
** Invoke git:check (first_time)
** Invoke git:wrapper (first_time)
** Execute git:wrapper
00:00 git:wrapper
01 mkdir -p /capistrano/tmp
vagrant@192.168.99.50's password:
prod
服务器上的当前权限如下所示(如前所述,我已手动授予777):
然后,当我键入密码时,它会在/capistrano/tmp/
路径下创建git.sh
vagrant@prod:~$ ls -l /capistrano/tmp/
-rwx------ 1 vagrant vagrant 93 Apr 7 16:33 git-ssh-football-production-vagrant.sh
我已经删除/创建/使用了不同的文件夹,对流浪用户有777个权限,并尝试了www-data
,但无法摆脱密码确认
部署.rb
...
set :tmp_dir, "/capistrano/tmp"
set :user, "vagrant"
...
role :app, %w{vagrant@192.168.99.50}
server '192.168.99.50', user: 'vagrant', roles: %w{app}
production.rb
...
set :tmp_dir, "/capistrano/tmp"
set :user, "vagrant"
...
role :app, %w{vagrant@192.168.99.50}
server '192.168.99.50', user: 'vagrant', roles: %w{app}
找到了解决办法。我所要做的就是使用下面的命令将
dev
服务器的公钥添加到prod
服务器的授权密钥中
$ cat ~/.ssh/id_rsa.pub | ssh vagrant@192.168.99.40 'cat >> /home/vagrant/.ssh/authorized_keys'