【问题标题】:Hudson jobs and slave node are missing after an upgrade升级后 Hudson 作业和从节点丢失
【发布时间】:2011-04-28 05:32:37
【问题描述】:

Hudson 工作和奴隶信息存储在哪里以及如何存储?

我今天不小心取消了 Hudson 升级。它不允许我继续升级;只能降级到以前的版本,然后再次升级。在我降级之后,我最近创建的两个作业连同我为其中一个作业创建的从节点一起从仪表板中消失了,而我最近删除的作业显示在仪表板中。升级后,作业和节点处于相同状态。

发生了什么?我可以恢复我最近的作业和节点吗?我该怎么做?请记住,虽然我很了解 C/C++,但 Web 服务不在我的领域,我真的不知道什么是 jar 或战争……我只是按照在线说明安装和设置 Hudson 和它工作。我希望避免简单地重新创建这些工作;设置其中一个并不简单。

更多信息:查看配置,主目录不正确;它认为 HOME 是 /root/ 而不是 /home/hudson。它是如何改变的,我该如何改变它?

之前的 Hudson 版本是 1.379。它目前正在运行 1.381。我在 RHEL 5 上运行它。

当我查看 .hudson/jobs 目录时,最近的两个作业都在那里,而之前删除的作业都不在那里。这些作业目录缺少它们的“工作区”目录。

【问题讨论】:

    标签: linux hudson


    【解决方案1】:

    当我重新访问“管理 hudson”页面时,我得到了一个有用的线索,并看到一条消息,指出我的数据格式陈旧且不可读。这表明 Hudson 正在运行一个与最近使用的不同的 .war。所以我在磁盘上搜索了任何“hudson.war”文件,发现了两个;一个是几周前的,一个是几个月前的。较新的在我希望找到的地方,而较旧的则在其他地方。我把旧的改名了。另外,我有一个 start-hudson.sh 脚本,在该脚本中添加了“export HUDSON_HOME=/home/hudson”,并用它来重新启动 hudson。瞧,我的新工作又回来了。

    我原以为只需命名 HUDSON_HOME 变量就可以了,但我首先这样做并重新启动了 Hudson,但并不高兴。只有在我重命名了旧的 .war 并设置了环境变量之后,我才找到了修复程序。我的猜测是旧的 .war 文件的根设置为 HUDSON_HOME 并且不知何故 .war 正在运行,但页面上显示的版本是当前版本。我不明白,但我很高兴能重新开始工作。

    【讨论】:

      【解决方案2】:

      如您所见,作业配置存储在HUDSON_HOME/jobs/[name]/config.xml

      Slave 配置存储在 Hudson 主配置文件 HUDSON_HOME/config.xml

      我不确定为什么升级后重新启动时 Hudson 没有接手工作。检查 Hudson 日志可能会提供线索,通常是 /var/log/hudson/hudson.log

      如果您的作业的 config.xml 文件存在,那么如果您重新加载配置,Hudson 可能能够重新读取它们(Manage Hudson -> Reload Configuration从磁盘)。如果 Hudson 仍然无法识别它们(并且存在配置文件),那么您最好的选择可能是手动重新创建作业,从配置文件中获取您可以获取的任何内容(请记住,XML 转义应用于文本字段,例如构建命令)。

      【讨论】:

      • 感谢您提供的好信息;我给了你 +1 的尝试!
      猜你喜欢
      • 2012-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-18
      • 2019-05-05
      • 2017-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多