Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从快照还原磁盘后,Jenkins无法启动_Jenkins_Google Compute Engine_Devops_Gcloud_Snapshot - Fatal编程技术网

从快照还原磁盘后,Jenkins无法启动

从快照还原磁盘后,Jenkins无法启动,jenkins,google-compute-engine,devops,gcloud,snapshot,Jenkins,Google Compute Engine,Devops,Gcloud,Snapshot,自2020年初以来,Jenkins安装在GCE上运行,管道、插件和其他配置工作正常 在对它进行了一天的试验,引入了一些新的操作系统级附加功能,这些功能本应花费5分钟,但最终花了整整一天的时间,我意识到我遇到了麻烦,于是决定删除虚拟机,并使用11月拍摄的快照创建一个新的虚拟机,上次虚拟机未经修改即可正常工作。这个特殊的Jenkins安装用于构建我们内部应用程序的暂存版本,所以我不太关心宕机之类的问题 在创建了一个新的虚拟机之后,使用了与前一个虚拟机相同的规范,运行Debian 10,并将快照分配为

自2020年初以来,Jenkins安装在GCE上运行,管道、插件和其他配置工作正常

在对它进行了一天的试验,引入了一些新的操作系统级附加功能,这些功能本应花费5分钟,但最终花了整整一天的时间,我意识到我遇到了麻烦,于是决定删除虚拟机,并使用11月拍摄的快照创建一个新的虚拟机,上次虚拟机未经修改即可正常工作。这个特殊的Jenkins安装用于构建我们内部应用程序的暂存版本,所以我不太关心宕机之类的问题

在创建了一个新的虚拟机之后,使用了与前一个虚拟机相同的规范,运行Debian 10,并将快照分配为磁盘的源,然后重新加载仪表板,对此感到惊讶:

登录虚拟机本身,我发现所有目录/文件都在那里,但运行
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'.
我开始在谷歌上搜索,基本上花了2个小时在这上面,除了很多提到使用Java8的文章之外,没有发现任何相关的东西,因为java已经存在,而且日志本身说找到了正确的java版本

作为最后一次尝试,我试图清除jenkins并重新安装它,之后一切正常,当然,一切也都被清除了。所以我创建了另一个虚拟机,在尝试其他操作之前,决定在这里寻求帮助

Jenkins中是否存在无法在磁盘快照中恢复的内容,导致启动LSB时启动LSB:start Jenkins失败。消息?我可以尝试什么来修复和恢复它


添加更多信息:尝试通过
.war
文件(
java-jar/usr/share/jenkins/jenkins.war
)启动jenkins,但可以像启动新安装一样启动,要求管理员密码和所有其他信息,忽略现有的
config.xml
/var/lib/jenkins

中已经存在的所有其他文件,我对jenkins在GCE虚拟机上运行有类似的体验。我还没有解决完这个问题,但我已经设法让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正在运行并接听我的网络浏览器呼叫。

嗯。。。多亏Stackoverflow没有通知任何事情,除非我回到网站,否则我错过了这个答案。与此同时,我从头开始重建了一个新的VM,幸运的是,我成功地从快照中恢复了作业。我将尝试在一个受控的“灾难”中运行这个脚本,看看是否一切正常。谢谢