使用deb文件和SBT设置生产日志/配置

时间:2013-12-23 00:12:52

标签: scala debian sbt sbt-native-packager

我正在使用sbt-native-packager搜索在我的deb文件中设置生产中的日志/配置的最佳方式。

a。)我想将我的reference.conflogback.xml从我的代码存储库复制到/etc/my-app/reference.conf/etc/my-app/logback.xml我猜这可能与linuxPackageMappings有关,但我还是找不到一个例子,我仍然在努力弄清楚SBT和插件是如何协同工作的。

b。)我需要告诉我的jvm我应该使用这个配置和这个logback配置,当通过创建的upstart启动时 - 如何将参数从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"))

感谢

2 个答案:

答案 0 :(得分:2)

a)有关日志记录输出,请参阅this question。配置输入可以通过

轻松完成
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 并按照here的说明操作并查看etc-default template

答案 1 :(得分:0)

听到很多问题......

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

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

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

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

c)您应该登录到/ var

下的某个目录

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