Logback配置,木偶和应用程序版本

时间:2013-07-31 10:12:54

标签: logback puppet

我正忙着测试一种新的方法来管理一个在木偶管理的主机上使用logback的java应用程序,并且想知道是否有人对这方面的最佳方法有一些建议。我陷入困境22。

Java应用程序由自动化系统(CI)部署到主机。部署将应用程序版本号写入文件(例如/etc/app.version可能包含“0001”)

logback配置文件(logback.xml)由puppet管理。

我正在尝试将应用程序配置为在日志记录布局中包含它的版本号(例如<pattern>VERSION: %version%</pattern>。但是,我不确定该方法,因为没有用于logback的“include”函数配置文件(将包含版本号的文件包含在logback配置中)。同时,我没有看到使用主机端文件让木偶进行客户端模板构建的方法(I'尝试使用模板方法,但模板是在puppet服务器端编译的。)

有关如何使其正常工作的想法吗?

1 个答案:

答案 0 :(得分:2)

我会写一个custom fact。事实在客户端执行。

例如:

的logback /舱单/ init.pp

file { '/etc/logback.xml':
  content => template('logback/logback.xml.erb')
}

的logback /模板/ logback.xml.erb

...
<pattern>VERSION: <%= scope.lookupvar('::my_app_version') %></pattern>
...

的logback / LIB / facter / my_app_version.rb

Facter.add('my_app_version') do
  setcode do
    begin
       File.read('/etc/app.version')
    rescue
       nil
    end
  end
end

希望有所帮助。我认为在Puppet&lt; 3.0你必须在puppet.conf中设置“pluginsync = true”才能使它工作。