如何解决从快照恢复磁盘后 Jenkins 无法启动
自 2020 年初以来,此 Jenkins 安装在 GCE 上运行,管道、插件和其他配置正常运行。
经过一天的试验以引入一些新的操作系统级别的附加功能,本应花费 5 分钟,结果却花了一整天,我意识到我碰壁了,决定通过删除 VM 来清理电路板并使用 11 月的快照创建一个新的快照,上次 VM 在没有修改的情况下正常工作。这个特殊的 Jenkins 安装用于构建我们内部应用程序的临时版本,所以我不太关心停机时间等。
在创建一个新的虚拟机后,与前一个相同的规格,运行 Debian 10,并将快照分配为磁盘的源,然后重新加载仪表板并对此感到惊讶:
登录 vm 本身,我发现所有目录/文件都在那里,但运行 sudo systemctl status jenkins
会返回:
● jenkins.service - LSB: Start Jenkins at boot time
Loaded: loaded (/etc/init.d/jenkins; generated; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2021-01-05 17:54:55 UTC; 5s ago
Docs: man:systemd-sysv-generator(8)
Process: 653 ExecStart=/etc/init.d/jenkins start (code=exited,status=7)
Tasks: 0 (limit: 4915)
CGroup: /system.slice/jenkins.service
Jan 05 17:52:34 jenkins-1-vm systemd[1]: Starting LSB: Start Jenkins at boot time...
Jan 05 17:52:40 jenkins-1-vm jenkins[653]: Correct java version found
Jan 05 17:52:41 jenkins-1-vm su[767]: Successful su for jenkins by root
Jan 05 17:52:41 jenkins-1-vm su[767]: + ??? root:jenkins
Jan 05 17:52:41 jenkins-1-vm su[767]: pam_unix(su:session): session opened for user jenkins by (uid=0)
Jan 05 17:54:55 jenkins-1-vm jenkins[653]: Starting Jenkins Automation Server: jenkins failed!
Jan 05 17:54:55 jenkins-1-vm systemd[1]: jenkins.service: Control process exited,code=exited status=7
Jan 05 17:54:55 jenkins-1-vm systemd[1]: Failed to start LSB: Start Jenkins at boot time.
Jan 05 17:54:55 jenkins-1-vm systemd[1]: jenkins.service: Unit entered failed state.
Jan 05 17:54:55 jenkins-1-vm systemd[1]: jenkins.service: Failed with result 'exit-code'.
我开始在 google 上搜索,基本上在过去的 2 个小时里都花在了这个上面,除了很多提到使用 Java8 的文章外,没有发现任何相关的内容,这些文章不能适用于这种情况,因为 java 就在那里,日志本身说 {{1} }.
作为最后一次尝试,我尝试 Correct java version found
并重新安装它,之后一切正常,但当然,一切也都消失了。所以我创建了另一个虚拟机,在尝试其他任何事情之前,决定在这里寻求帮助。
Jenkins 中是否存在无法在磁盘快照中引入并导致出现此可怕 apt purge jenkins
消息的内容?我可以尝试什么来解决此问题并恢复它?
添加更多信息:尝试通过 Failed to start LSB: Start Jenkins at boot time.
文件 (.war
) 启动 jenkins 有效,但将其作为新安装启动,要求输入管理员密码和其他所有信息,忽略现有java -jar /usr/share/jenkins/jenkins.war
和所有其余的已经出现在 config.xml
中。
解决方法
我在 GCE 虚拟机上运行 Jenkins 时也有过类似的经历。我还没有解决这个问题,但我已经设法让 Jenkins 运行,而无需再次重新配置所有内容。
在几个小时内逐步完成启动脚本后,我发现了一个地方,它消失在一个洞里,然后作为失败返回。通过查看失败后的步骤,我能够从首要原则让系统重新运行。
我最终运行的命令(并且应该真正保留在脚本中,因为我的 Jenkins 实例不会在系统重新启动后使用您获得的指纹启动)。这是在 GCE 中运行的 Debian 10 系统。
. /etc/default/jenkins
DAEMON_ARGS="--name=$NAME --inherit --env=JENKINS_HOME=$JENKINS_HOME --output=$JENKINS_LOG --pidfile=$PIDFILE"
DAEMON=/usr/bin/daemon
SU=/bin/su
JAVA=`type -p java`
$SU -l $JENKINS_USER --shell=/bin/bash -c "$DAEMON $DAEMON_ARGS -- $JAVA $JAVA_ARGS -jar $JENKINS_WAR $JENKINS_ARGS"
此时 Jenkins 正在运行并响应我的网络浏览器调用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。