【问题标题】:how to set role in capistrano? [closed]如何在 capistrano 中设置角色? [关闭]
【发布时间】:2014-06-16 02:14:07
【问题描述】:

我想更改 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}

到 设置:hostip,"192.168.16.37"

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

但是有错误!

 Exception while executing on host "#{:

【问题讨论】:

    标签: ruby-on-rails ruby capistrano


    【解决方案1】:

    错误在这里%w{"#{ :hostip }"}

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

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

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

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

    ["#{hostip}"]
    

    【讨论】:

    • 但是如何通过使用 :hostip 的值来设置角色 :web 呢?我不想将相同的值设置 3 次。
    • 已编辑...我不知道如何设置 hostip...我只是提供有关基本 ruby​​ 的建议 :)
    【解决方案2】:

    它可以这样配置。

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-13
        • 2015-12-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多