服务器是在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中犯了任何可能导致其他问题的错误,请告诉我。
答案 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”。