0

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

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

部署.rb: http ://gist.github.com/643504

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

.biz 正在上演,.com 正在制作中。

我还将有 2 个不同的数据库。1 用于阶段 1 用于生产

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

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

对于生产文件夹,我只想能够在服务器上为生产文件夹执行 git pull。

即时问题:1)现在当我测试我的代码时,我无法在服务器上执行 git pull 仅用于暂存文件夹。

我在我的 devt 机器上运行了这个命令。

上限分期部署

系统提示我输入我不确定的密码。

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

请帮忙

我试过这个capistrano 密码提示

我在 ~/.ssh vi 配置中执行了以下操作

插入以下文本

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 中犯了任何错误,可能会导致其他问题进一步朝着我想要实现的目标前进,请告诉我。

4

1 回答 1

0

假设安装不是问题等,

假设您想要进行以下设置,

并且你想这样做:

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

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

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

1)确保“部署”具有您笔记本电脑的公钥。(假设您已经为您的笔记本电脑创建了一个密钥对)

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

如果文件夹或文件不存在,请创建它们。

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

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

4) 访问 github.com 或 projectlocker 并将 3) 中密钥对的公钥放在网站上。

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) 随后运行“上限生产部署”。

于 2010-10-26T13:35:14.950 回答