1

puppet で管理されたホストで logback を使用する Java アプリケーションを管理するための新しいアプローチをテストするのに忙しく、これに対する最善のアプローチについてアドバイスがあるかどうか疑問に思っていました。キャッチ 22 の状況で立ち往生しています。

Java アプリケーションは、自動化システム (CI) によってホストにデプロイされます。デプロイメントは、アプリケーションのバージョン番号をファイルに書き込みます (例: /etc/app.version には「0001」が含まれる場合があります)。

logback 構成ファイル (logback.xml) は puppet によって管理されます。

ロギング レイアウトにバージョン番号を含めるようにアプリケーションを構成しようとしています (たとえば<pattern>VERSION: %version%</pattern>、. ただし、logback 構成ファイルの "include" 機能がないため (ファイルを含めるため)、アプローチについてはわかりません同時に、ホスト側ファイルを使用して、パペットにクライアント側テンプレート ビルドを実行させる方法がわかりません (テンプレート アプローチを使用してみましたが、テンプレートは puppet サーバー側でコンパイルされます)。

これを機能させる方法について何か考えはありますか?

4

1 に答える 1

2

カスタムファクトを書きます。ファクトはクライアントで実行されます。

例えば:

ログバック/マニフェスト/init.pp

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

ログバック/テンプレート/logback.xml.erb

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

ログバック/lib/ファクター/my_app_version.rb

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

それが役立つことを願っています。Puppet < 3.0 では、これを機能させるには puppet.conf で「pluginsync = true」を設定する必要があると思います。

于 2013-08-02T01:56:44.947 に答える