背景
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主目录,花费的时间不用那么久
评论前必须登录!
注册