【问题标题】:Logback config, puppet and application versionsLogback 配置、puppet 和应用程序版本
【发布时间】:2013-07-31 19:33:49
【问题描述】:

我正忙于测试一种新方法来管理在 puppet 托管主机上使用 logback 的 java 应用程序,并且想知道是否有人对此最佳方法有一些建议。我遇到了第 22 条问题。

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

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

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

关于如何让它发挥作用的任何想法?

【问题讨论】:

    标签: logback puppet


    【解决方案1】:

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

    例如:

    logback/manifests/init.pp

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

    logback/templates/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

    【讨论】:

    • 谢谢,Facts 将完全满足我的需求。
    猜你喜欢
    • 1970-01-01
    • 2013-08-21
    • 2015-09-08
    • 2014-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多