Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vagrant 在流浪环境中消除mkdir命令的capistrano密码确认_Vagrant_Capistrano - Fatal编程技术网

Vagrant 在流浪环境中消除mkdir命令的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

我使用了两个相同的流浪者盒子,用于测试capistrano部署过程。我可以成功地将应用程序从
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'