2014-06-16 83 views
-1

我想將production.rb配置文件如何在capistrano中設置角色?

set :hostip,"192.168.16.37" 

role :web, %w{192.168.16.37} 
role :app, %w{192.168.16.37} 
role :db, %w{192.168.16.37} 

改變 集:主機IP 「192.168.16.37」

role :web, %w{"#{ :hostip }"} 
role :app, %w{"#{ :hostip }"} 
role :db, %w{"#{ :hostip }"} 

但有錯誤!

Exception while executing on host "#{: 

回答

1

的錯誤是在這裏%w{"#{ :hostip }"}

您可以使用%w",但不能同時... :)

一個基本的例子來告訴你爲什麼:

a = %w{" #{ 2 + 2 } " } 
=> ["\"", "\#{", "2", "+", "2}", "\""] 

您可以嘗試在數組中使用實際的字符串(%w只是將一組字符串轉換爲字符串數組)

["#{hostip}"] 
+0

但我怎麼可以設置角色:由所使用的價值網:主機IP?我不想將相同的值設置3次。 – wcc526

+0

編輯...我不知道如何設置hostip ...我只提供關於基本ruby的建議:) –

0

它可以像這樣配置。

set :hostip,"192.168.16.37" 
role :web, %W{#{ fetch(:hostip)}} 
role :app, %W{#{ fetch(:hostip)}} 
role :db, %W{#{ fetch(:hostip)}} 
0

您可以cofigure這樣在一個行,如果你正在使用相同hostip所有角色:

set :hostip,"192.168.16.37" 
server %w{#{fetch(:hostip)}}, :app, :web, :db, :primary => true