【问题标题】:How to check for newer Jenkins plugin versions automatically?如何自动检查更新的 Jenkins 插件版本?
【发布时间】:2021-09-02 00:40:24
【问题描述】:

我们正在使用官方的 Jenkins docker 镜像来运行 Jenkins serverless。 docker 镜像包含一个install-plugins.sh script,可以提供插件列表及其版本,并在镜像构建期间运行。

虽然 Jenkins 会在管理后端警告插件过时,但有没有办法轻松更新该列表(格式)?

插件列表格式如下

apache-httpcomponents-client-4-api:4.5.13-1.0
authentication-tokens:1.3
aws-credentials:1.28
(...)
credentials:2.3.7
git-client:3.2.1
git-server:1.9
git:4.8.1

我希望有一个 cli 工具或在线工具来提交该列表并获取有关较新插件版本的信息并轻松将它们带到最新版本。显然,Jenkins 插件库为每个插件提供了此信息,例如,https://plugins.jenkins.io/apache-httpcomponents-client-4-api/#releases

【问题讨论】:

    标签: jenkins jenkins-plugins


    【解决方案1】:

    Plugin Installation Manager Tool 将取代各种插件管理工具尝试,正如 Jenkins docker 映像存储库自述文件中所述,install-plugins.sh script is deprecated

    我希望有一个 cli 工具或在线工具来提交该列表并 获取有关较新插件版本的信息并将它们带到最新版本 轻松版本

    使用插件安装管理器工具,就像将现有列表输入工具一样简单:

    --available-updates:(可选)设置为 true 以显示任何请求的插件是否有可用的更新版本。如果 Jenkins 版本特定的更新中心可用,则将根据该更新中心的数据确定最新的插件版本。

    readme file has an example 怎么称呼它。请记住将您的插件列表文件指定为输入。

    其他有用的选项:
    --no-download:(可选)设置为 true 以不下载插件。默认设置为 false 并且将下载插件。
    --latest false:(可选)设置为 false 以下载所有依赖项的最低要求版本。
    --latest-specified:(可选)(高级)设置为true 以下载任何要求具有最新版本的插件的最新依赖项。所有其他插件依赖版本由更新中心元数据或插件 MANIFEST.MF 确定。


    补充说明:

    install_plugins.shPlugin Installation Manager Tool 都将仅接受 pluginname(无版本)或 pluginname:latest,它们将在运行时检索可用的最新版本。见detailed examples

    如果只指定了所需的基本插件,这两个工具也会自动下载依赖项即:git 包括 git-client、apache-httpcomponents-client-4-api、凭据,但不包括 aws-credentials(但 aws-credentials 包括凭据)

    风险在于插件版本的更改可能会添加您不知道的版本或插件(或者您保留过时/冗余的依赖项)。或者只是有一个更新的依赖项。但这两种方式都可以。

    保存下载内容的摘要总是好的;您可以generate a "complete list" 供参考。我们的最佳做法是使用所需插件的 SPEC 列表来离线生成当前完整的插件。这两个列表与每个插件的CasC yaml files 一起被检入VCS。在实例配置中使用带有确切版本的完整列表。使用 SPEC 列表来考虑功能升级和安全问题的完整列表。

    【讨论】:

    • 您好伊恩,非常感谢您的回答。我冒昧地把它缩短了,希望你没问题。我删除了您关于在插件文件中指定特定版本与始终下载最新版本的评论。来自其他依赖管理器,控制确切的版本对于复制环境并具有可靠性非常重要。所以我认为这是理所当然的,并删除了一般性评论。希望你没事。再次感谢。
    • 看到您的编辑。我显然没有很好地校对我的答案!重要的是要确认“最新”选项以及隐式依赖项下载,因为它们可以更改并且可能会在您身上下载额外内容。更容易跟踪您“需要”的内容并监控功能与安装的内容(为了安全)。这些选项为其他有类似情况的人提供了完整的答案,但可能总是想要最新的(在 Config Mgmt 工作 25 年,我知道这是一个坏主意,但有些人喜欢那个选项)。
    • 在“Giant Corp”设置新实例时,我们提供所需插件列表 (SPEC) 并获取最新的(用于 LTS 版本)。我们检查整个下载列表的合规性,然后将 SPEC 列表和派生列表检查到实例 CasC VCS 中。副本将获得相同的派生列表。从 SPEC'd 列表中升级工作。我们有一个临时实例来进行设置,并且有许多实时实例可以满足不同的用户群需求。每个插件在CasC configuration 中都有一个单独的 yaml 配置文件。
    • 希望重新格式化后对所有人有用。
    【解决方案2】:

    存在插件安装管理器工具供您使用。

    查看video如何使用

    【讨论】:

    • 嗨 Dmitriy,非常感谢您向我指出这个插件。它帮助我解决了我的用例。但我想鼓励您详细说明您的建议。我认为以目前的形式,它作为评论而不是答案。
    猜你喜欢
    • 2022-08-06
    • 2012-06-26
    • 2015-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 2021-12-17
    • 1970-01-01
    相关资源
    最近更新 更多