如何在卡皮斯特拉诺设定角色?

时间:2014-06-16 02:14:08

标签: ruby-on-rails ruby capistrano

我想更改production.rb配置文件

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}

要     set:hostip," 192.168.16.37"

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

但是有错误!

 Exception while executing on host "#{:

3 个答案:

答案 0 :(得分:1)

错误在于%w{"#{ :hostip }"}

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

向您展示原因的基本示例:

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

您可以尝试在数组中使用实际字符串(%w只需将一组字符串转换为字符串数组)

["#{hostip}"]

答案 1 :(得分:0)

它可以像这样配置。

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

答案 2 :(得分:0)

如果您对所有角色使用相同的hostip,则可以在一行中进行如下配置:

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