无法使用capistrano - 提示输入密码我不确定

时间:2010-10-24 13:01:38

标签: ruby-on-rails git capistrano git-checkout

我的开发机器上的ruby:ruby 1.8.7(2010-01-10 patchlevel 249)[i486-linux] 我的开发机器上的capistrano:Capistrano v2.5.5 开发机器上的操作系统:ubuntu 10.04桌面版

服务器是在ubuntu服务器64位10.04上运行的Amazon Web服务实例 ruby on server:ruby 1.8.7(2010-01-10 patchlevel 249)[x86_64-linux] Capistrano v2.5.5

deploy.rb:http://gist.github.com/643504

我想做什么: 我希望能够在我的服务器上的/ var / www中的2个不同文件夹上进行部署。 1个文件夹用于example.com 1个文件夹是example.biz

<。> .biz正在升级,.com正在制作。

我还将拥有2个不同的数据库。 1用于分期1用于生产

我想使用capistrano在我的生产文件夹和暂存文件夹上部署代码。

用于部署暂存文件夹,我希望能够 1)仅在服务器上执行git pull for staging文件夹。 2)运行一个将恢复登台数据库的bash脚本。编写脚本并将其放在暂存文件夹中。

对于生产文件夹,我只想在服务器上为生产文件夹做一个git pull。

IMMEDIATE问题: 1)现在,当我测试我的代码时,我无法在服务器上执行git pull for staging文件夹。

我在我的开机中运行了这个命令。

cap staging deploy

我被提示输入密码我不确定。

我看到的截图 http://picasaweb.google.com/kimcity/Screenshots#5531588545516293762

请帮忙

我试过这个capistrano password prompt

我在〜/ .ssh中做了以下操作 vi config

插入以下文字

Host production
  Hostname example.com
  User username_of_server
  ForwardAgent yes

Host staging
  Hostname example.biz
  User username_of_server
  ForwardAgent yes

Host *
  ForwardAgent no

仍然不适合我。

潜在问题: 1)如果我在deploy.rb中犯了任何可能导致其他问题的错误,请告诉我。

1 个答案:

答案 0 :(得分:0)

假设安装不是问题等,

假设您要进行以下设置,

并且你想这样做:

从您的笔记本电脑运行“cap production deploy”,并让您的服务器git从公共存储库(如github.com或projectlocker.com)中提取最新代码

关键是你需要在你的服务器上创建一个用于部署的用户帐户。

让我们将此用户帐户称为“部署”,不带引号。

1)确保'deploy'具有笔记本电脑的公钥。 (假设您已经为笔记本电脑创建了密钥对)

笔记本电脑的公钥是一长串文本,应该放在/home/deploy/.ssh/authorized_keys

创建文件夹或文件(如果它们不存在)。

2)检查您是否可以使用笔记本电脑上的deploy @ server进入服务器。如果这有效,则意味着您已正确完成了1)。

3)在服务器计算机上生成“部署”的密钥对。

4)转到github.com或projectlocker,将密钥对的公钥放在网站上。

5)转到服务器上的工作文件夹。如果你在该文件夹中没有.git,请执行git init。运行git pull git-abc@github.com:abc.git或者你的git repo url。

6)如果您成功从github或projectlocker的公共仓库中提取最新代码,则第3步和第4步已正确完成。

7)现在确保您在deploy.rb中有以下内容

# set server user account responsible
set :user, "deploy"

# Deploy via a remote repository cache. In git's case, it 
# does a "git fetch" on the remote cache before moving it into place
# can change this to :copy but apparently :remote_cache is faster
set :deploy_via, :remote_cache

8)运行“cap production deploy:setup”,因为您将首次部署。

9)随后运行“cap production deploy”。