云计算百科
云计算领域专业知识百科平台

Jenkins服务器崩溃数据丢失,挽救过程

     背景

        Jenkins服务器因使用时长&性能问题(很老的机子)经常崩溃,最近又崩了一次,重启发现Jenkins无法访问(jenkins设置了开机自启),尝试手动重启Jenkins,访问后所有创建的项目均丢失 吓半死啊!!!! 

     由于服务器不是自己部署的,平日维护只知道源码、发布目录这种编译过程中会使用的目录 ,对Jenkins的目录结构不了解,网上查看正常Jenkins相关配置都会在工作目录下 /var/lib/jenkins/*下保存,但是目前这个目录下Jenkins配置相关的内容都是空或者默认值(前同事部署的时候留下的历史问题)由于自己对当时部署的情况不了解  走了很多弯路,后来在config.xml中通过关键字查询,定位到了工作目录的地址      

        找到了Jenkins工作的主目录,最后将Jenkins相关目录(主目录&过程中自定义相关目录)做整体迁移ubuntuA迁至ubuntuB,Jenkins终于恢复正常使用

Jenkins工作目录结构说明

• config.xml: Jenkins 根配置文件

• *.xml: 其他站点范围的配置文件

• jobs: 所有 Jenkins 作业的根目录

    • [JOBNAME]: 每个作业的子目录

         • config.xml: 作业配置文件

         • nextBuildNumber: 下一次构建数字序号

         • builds: 存储过去的生成记录

              • [BUILD_ID]: 每个生成的子目录

                  • build.xml: 生成结果摘要

• workspace: Jenkins jobs 构建的工作空间

    • [JOBSNAME]: jobs 工作目录

• logs: Jenkins 的日志目录

• plugins: 所有 Jenkins 插件的根目录

    • [PLUGINNAME]: 每个插件的子目录

    • META-INF: 插件 manifest + pom.xml 的子目录

    • WEB-INF: 插件 jar(s) 和 licenses.xml 的子目录

    • [PLUGINNAME].jpi: 插件的 jpi 或 hpi 文件

    

• secret.key: 用于某些插件安全操作的弃用密钥

    • secret.key.not-so-secret: 用于验证 $JENKINS_HOME 创建日期

    

• secrets: 用于凭据解密的 secret-key 的根目录

    • hudson.util.Secret: 用于加密某些 Jenkins 数据

    • master.key: 用于加密 hudson.util.Secret 密钥

    • instanceIdentity.KEY: 用于标识此实例

    

• updates: 这是 Jenkins 使用的一个内部目录,用来存放可用的插件更新

• userContent: 您可以使用这个目录存放您自己为 Jenkins 服务器定制化的一些内容。在您的
https://server/userContent/ 里访问在这个目录里的文件

• users: 如果您使用的是 Jenkins 的本地用户数据库,用户账户信息会被存放在这个目录下

    • [USERNAME]: 您 Jenkins 上的用户目录

         • config.xml: 用户的配置文件

         • users.xml: 存放所有用户名及用户配置文件

  

        后面复盘整个过程,一开始的问题可能没有那么棘手,由于部署的环境自己不太清楚,导致排查问题的方向错了,后面定位不到问题才想到用数据迁移,最后迁移工作即将完成才找到Jenkins工作目录还是个隐藏文件 -_-,索性继续完成迁移工作解决问题
       如果一开始找到Jenkins主目录,花费的时间不用那么久

赞(0)
未经允许不得转载:网硕互联帮助中心 » Jenkins服务器崩溃数据丢失,挽救过程
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!