【问题标题】:Jenkins CI: Where and how store configuration files?Jenkins CI:在哪里以及如何存储配置文件?
【发布时间】:2014-12-01 20:05:51
【问题描述】:

我正在将配置参数移出 Java 应用程序。我发现最好的方法是 to extend your classpath 并使用 .properties 文件(让 ZooKeeper 单独处理另一个要求)。

所以我的 WAR 文件不再有任何主机/IP/URL、用户/密码。

DevOps 在测试、阶段、稳定安装中手动分发配置。

现在是时候让 Jenkins 运行测试了。但它们失败了,因为类路径中没有必需的 .propeties 文件。

如何将此配置文件加载到 Jenkins 以及如何使其在测试类路径中可用?

maven-surefire-pluginallow extending classpathpassing system-properties

所以只问如何在 Jenkins 托管服务器中获取单独的目录并将文件加载到该目录并为每个构建作业创建别名/占位符/envvar 以在构建配置中引用此路径。

这项工作可以通过 SSH 访问来完成,但我认为这是“错误的方式”。我希望这可以通过 Jenkins UI 完成(任何管理员都可以在 WEB 浏览器中上传文件)。

更新我对分布式从/主构建没有要求,但如果有解决方案可以自动将配置文件迁移到从属...

以这种方式 sshing 到主机或 ftp/scp - 坏事。

【问题讨论】:

    标签: maven configuration jenkins external configuration-files


    【解决方案1】:

    您应该将测试所需的配置与其余的源代码一起保存,以便编译后可以运行您的单元测试。

    部署 .war 后,DevOps 团队应使用他们拥有的任何每个环境的配置来覆盖战争中的配置。

    【讨论】:

    • 在源代码树中保存测试装置是可以的。以及本地/内存数据库、应用程序等的假密码。但我不同意将连接/身份验证数据存储到特定的测试环境,以防 不容易自动重现环境(手动编辑配置外部应用程序)或因为安全考虑
    【解决方案2】:

    我阅读了大部分 Jenkins 文档,在邮件列表和 IRC 中询问。是的 - 詹金斯社区保持沉默。在文档中,我找到了 Config File Provider Plugin 的链接,之后我访问了http://builder.evil.com/jenkins/pluginManager/available 页面并查找 config 关键字。

    有很多相关的插件,对我的主题有各种用处(最没用的第一):

    仅最后一个插件 - Config File Provider Plugin 允许通过 Jenkins WEB 界面编辑配置。它有兄弟 - Managed Script Plugin - 用于上传/管理/编辑自定义脚本。没问题,我现在使用 Config File Provider Plugin

    【讨论】:

    • maven 使用 settings-security.xml 吗?您是否找到了将 settings-security.xml 集成到 Config File Provider Plugin 中的方法?
    • 对不起,没有。但是从wiki.jenkins-ci.org/display/JENKINS/Config+File+Provider+Plugin 当前实现支持“用户名和密码”-凭据。如果您的密码由 maven 加密,您可以将加密的密码存储在相同的配置中 - 但您必须确保 settings-security.xml 可用于作业,不幸的是 maven 还没有提供传递此文件的方法, 所以这个文件必须位于 maven 所需的原始位置 (/.m2) 所以你可以在预构建步骤上传这个文件!
    猜你喜欢
    • 2012-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多