【问题标题】:Backup and update Jenkins plugins via job, NOT manually通过作业备份和更新 Jenkins 插件,而不是手动
【发布时间】:2016-12-08 18:31:59
【问题描述】:

我希望创建一个 Jenkins 2 管道作业,该作业将在 aws 中备份主节点的映像,然后更新任何需要更新的 Jenkins 插件。目标是在停机时每 3-4 天运行一次,以确保一切都是最新的,而无需手动完成登录 aws、进行备份、登录 jenkins 和更新插件的所有步骤,等等

经过大约一个小时的研究,我甚至无法找到这两个步骤中的任何一个的部分解决方案,因此我正在与社区联系。

  1. 是否可以在 aws 中构建支持 Jenkins 的管道作业,如果可以,如何?
  2. 能否通过作业触发 Jenkins 插件更新?如果可以,如何触发?

如果这两个都做不到,我会感到震惊,但作为 Jenkins 的菜鸟,我正在苦苦挣扎。

顺便说一句,我已经看过/研究了 ThinBackup,但它似乎没有我正在寻找的选项。如果我错了,请纠正我!

【问题讨论】:

    标签: amazon-web-services jenkins jenkins-pipeline


    【解决方案1】:

    您可以使用 Scriptler 插件 在 Jenkins 作业中在 Jenkins master 上执行以下 groovy 脚本。

    import jenkins.model.Jenkins
    
    def uc = Jenkins.instance.updateCenter
    uc.updateAllSites()
    
    uc.updates.each {
        print('Updating ' + it.title + ' Plugin from ' + it.installed.version + ' to ' + it.version + ' ...\n')
        it.deploy().get()
    }
    

    您还可以安排保存重启以在部署新插件版本后激活它们。

    Jenkins.instance.safeRestart()
    

    【讨论】:

      【解决方案2】:
      1. 要进行完整备份,您只需复制 $JENKINS_HOME 目录。也应该可以在管道的 shell 步骤中使用。
      2. 要更新插件,您只需从updates server 获取最新的 hpi 文件并将其复制到 $JENKINS_HOME/plugins 中,然后重新启动 Jenkins。或者,您可以使用 Groovy script 使用 Jenkins 内部 API 来完成。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-30
        • 1970-01-01
        • 2017-02-22
        • 1970-01-01
        • 2015-05-09
        • 2014-06-03
        • 2017-10-18
        相关资源
        最近更新 更多