我正忙着测试一种新的方法来管理一个在木偶管理的主机上使用logback的java应用程序,并且想知道是否有人对这方面的最佳方法有一些建议。我陷入困境22。
Java应用程序由自动化系统(CI)部署到主机。部署将应用程序版本号写入文件(例如/etc/app.version可能包含“0001”)
logback配置文件(logback.xml)由puppet管理。
我正在尝试将应用程序配置为在日志记录布局中包含它的版本号(例如<pattern>VERSION: %version%</pattern>
。但是,我不确定该方法,因为没有用于logback的“include”函数配置文件(将包含版本号的文件包含在logback配置中)。同时,我没有看到使用主机端文件让木偶进行客户端模板构建的方法(I'尝试使用模板方法,但模板是在puppet服务器端编译的。)
有关如何使其正常工作的想法吗?
答案 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”才能使它工作。