2014-09-28 53 views
0

我是capistrano的新手,我試圖找出是否可以通過使用git標籤作爲參考的推送方法部署到多個服務器。這比這更復雜一點,因爲這些都是安裝了FreeSSH的Windows服務器。我有這個至今:capistrano deploy_via:使用git標籤複製?

deploy.rb:

set :application, "iis_app" 
set :repo_url, "iis_repo" 
set :deploy_via, :copy 
set :copy_cache, true 

服務器定義:

role :push_servers, %w{"srv1" "srv2" "srv3" "srv4"} 

ssh_options: { 
    user: "windows_user", 
    forward_agent: true, 
    auth_methods: %w(password), 
    password: ENV["WINDOWS_PW"] 
} 

否則我有點失落。如果有人能指引我走向正確的方向,那會很棒。

回答

0

你的配置看起來很好。唯一的一點是,你的:repo_url應該是這樣的:

[email protected]b.com:mycompany/myrepo.git 

一個Git標籤基本上轉化爲一個版本(SHA1散列),所以你可以做這樣的事情:

對於Capistrano的2.9以上:

cap -S revision=<the sha1 of your tag> deploy 

對於舊版本的Capistrano的的,你可以這樣做:

cap -s branch=<the sha1 of your tag> deploy 

希望它有幫助。

+0

我正在使用capistrano 3.2.1。似乎沒有-S選項。我在幫助輸出中看不到一個。當我嘗試你建議的命令時,我得到這個:cap -S revision ='xxxxxxxxxxxxxxxxxxxx'部署產品 無效選項:-S – numb3rs1x 2014-09-29 05:01:25

+0

雖然看起來小寫字母-s有效。我得到一些東西。不完全是我想的。它似乎想要在每臺服務器上創建緩存。 INFO [553761a5]運行/ usr/bin/env mkdir -p/tmp/tier1_secure/on「srv1」 DEBUG [553761a5]命令:/ usr/bin/env mkdir -p/tmp/iis_app/ – numb3rs1x 2014-09-29 05:23:39

+0

我希望能夠獲得這會在本地創建緩存,然後將其推送到服務器,如scp或rsync。我試圖儘可能少地與Windows服務器交互,因爲FreeSSH軟件不提供shell。 – numb3rs1x 2014-09-29 05:26:57