3

我正在寻找使用sbt-native-packager在我的 deb 文件中在生产中设置日志记录/配置的最佳方法。

a.) 我想将我的reference.confandlogback.xml从我的代码存储库复制到/etc/my-app/reference.confor /etc/my-app/logback.xml我想它以某种方式是可能的,linuxPackageMappings但我还找不到一个例子,我仍在努力了解 SBT 和插件如何协同工作。

b.) 我需要告诉我的 jvm 在通过创建的 upstart 启动时我应该使用这个配置和这个 logback 配置 -我如何将参数从 build.scala 传递到 jvm-runscript

这是我当前的项目验证:

lazy val root = Project(id = appName, base = file("."), settings = JavaServerAppPackaging.settings  ++ packageSettings ++ allSettings ++ Project.defaultSettings)

  lazy val allSettings = Seq(
    resolvers += "Typesafe Releases" at "http://repo.typesafe.com/typesafe/releases",
    resolvers += "Sonatype OSS Snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/",
    libraryDependencies ++= dependencies)

  lazy val packageSettings = packageArchetype.java_server ++ Seq(
    bashScriptExtraDefines := Seq("aha"),
    version := appVersion,
    packageSummary := appName,
    packageDescription := appName,
    maintainer := appAuthor,    
    debianPackageDependencies in Debian ++= Seq("openjdk-7-jre-headless"))

谢谢

4

2 回答 2

2

a)有关日志记录输出,请参阅此问题。配置输入可以很容易地完成

mappings in Universal <+= (packageBin in Compile, baseDirectory ) map { (_, base) =>
    val conf = base / "conf" / "reference.conf"
    conf -> "conf/application.conf"
} 

按照惯例,通用打包在conf文件夹中定义配置文件。对于 debian,这会自动映射到/etc/your-app/filename

b) 将参数传递给脚本也是通过配置文件完成的。使用0.7.0-M3并按照此处的说明查看etc-default 模板

于 2014-02-11T20:30:24.603 回答
0

听到很多问题...

a) 所以你可以通过将它们包含在你的 debian 包中来安装你的 conf 和 xml 文件。构建 debian 软件包不是内置于 sbt 开箱即用的。您可以尝试https://github.com/sbt/sbt-native-packager但您最好退出 sbt 并仅使用许多常规方法之一来创建 debian 包。

请注意,您不应该在 linux 机器上登录 /etc。日志应该放在 /var 下

b) 你可以安装一个带有 -D 参数的初始化脚本来告诉 play 在哪里可以找到它的 conf 和 logback.xml 文件。

$JAVA_HOME/bin/java -Dconfig.file=/etc/foo.comf -Dlogger.file=/etc/logger.xml

c) 你应该登录到 /var 下的某个目录

您可以在作为 debian 软件包一部分的 postinst 脚本中创建目录。puppet(或类似的东西)可能是管理已部署盒子上的配置文件的更好方法。

于 2013-12-23T12:34:32.217 回答