Это правильный способ изменить файл конфигурации с помощью марионетки?

У меня есть приложение rails, и я хотел бы изменить файл ./config/environment/production.rb, чтобы иметь другую конфигурацию в зависимости от того, что я хочу, чтобы этот сервер делал.

Итак, я захожу в файл .rb из файла .pp и меняю некоторые строки, а затем перезапускаю службу. Это просто кажется мне очень плохой формой. Есть лучший способ это сделать? Меня попросили доставить 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"],
    }
}

person user1357182    schedule 11.06.2012    source источник
comment
Используйте для этого шаблоны ERB (см. docs.puppetlabs.com/guides/templating.html). )   -  person Sebastien Varrette    schedule 20.06.2012


Ответы (2)


Нет, это не лучший способ добиться того, что вам нужно.

Вы можете просмотреть шаблоны и создать файлы конфигурации таким образом. Таким образом, вы можете использовать переменные в файле конфигурации.

person Ger Apeldoorn    schedule 12.06.2012

Если вам нужно создать conf из шаблона, вы должны использовать модуль INI-файла от Puppetlabs

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

установить этот модуль из марионетки:

puppet module install cprice404-inifile
person Zipfer    schedule 20.06.2013