1

Railsアプリがあり、。/ config / environment / Production.rbファイルを変更して、そのサーバーに実行させたい内容に基づいて異なる構成を設定したいと思います。

そこで、.ppファイルから.rbファイルにアクセスし、いくつかの文字列を変更してから、サービスを再起動します。これは私には本当に貧弱な形のようです。これを行うためのより良い方法はありますか?1 RPMを提供し、puppetを介して構成を変更するように求められたので...

class Cloud-widget($MServer, $GoogleEarthServer, $CSever) {
package { "Cloud-widget":
    ensure => installed
}

service { "Cloud-widget":
    ensure => running,
}

<%
    file_names = ['./config/environment/production.rb']
    file_names.each do |file_name|
        puts text.gsub(/.*config.mserver(.*)/, "config.mserver_root = \"#{$Merver}\"")
        puts text.gsub(/.*config.google_earth_url(.*)/, "config.google_earth_url( = \"#{$GoogleEarthServer}\"")
        puts text.gsub(/.*config.cserver_base_url(.*)/, "config.cserver_base_url = \"#{$CServer}\"")
    end

    File.open(file_name, "w") {|file| file.puts output_of_gsub}
%>
    service { Cloud-widget:
        ensure => running,
        subscribe => File["./config/environment/production.rb"],
    }
}
4

2 に答える 2

2

いいえ、それは必要なものを達成するための良い方法ではありません。

テンプレートを見て、そのように構成ファイルを生成できます。そうすれば、構成ファイルで変数を使用できます。

于 2012-06-12T06:44:26.623 に答える
0

パターンから conf を作成する必要がある場合は、Puppetlabs の INI ファイル モジュールを使用する必要があります。

ini_setting { "sample setting":
  path    => '/tmp/foo.ini',
  section => 'foo',
  setting => 'foosetting',
  value   => 'FOO!',
  ensure  => present,
}

puppet からこのモジュールをインストールします。

puppet module install cprice404-inifile
于 2013-06-20T09:28:12.670 に答える