【问题标题】:Setup Master for builds on Jenkins在 Jenkins 上构建的设置大师
【发布时间】:2012-10-15 23:00:37
【问题描述】:

我将 jenkins 从一台服务器移动到另一台服务器,虽然大多数事情似乎都在工作,但我无法再在 master 上构建。

当我在 master 上运行作业时,没有获取 bash 配置文件,因此我丢失了所有路径。为了调试,我设置了一个与 master 具有相同凭据的 slave,它工作得很好。我得到了回显用户名和机器名称的工作,无论是在“master”还是在同一台机器上设置的从属服务器上运行,它们都是相同的。

关于如何让 jenkins 在 master 上运行时获取 bash 配置文件的任何想法?

编辑:我刚刚意识到,如果我从命令行手动启动 jenkins,我不会遇到这个问题。例如,下面的第一个命令有效,第二个无效:

$ nohup java -jar "${JENKINS_PATH}" --httpPort=${HTTP_PORT} > ${LOG_PATH} 2>&1 &  # WORKS
$ /sbin/service jenkins start  # DOESN'T WORK

启动脚本中启动jenkins的命令和我在命令行运行的命令是一样的。

【问题讨论】:

  • 新服务器的操作系统是否与旧服务器不同?你可以检查 /etc/profile 和 /etc/bash.bashrc
  • 它的centOS 5.8,而旧版本是5.2

标签: bash jenkins master .bash-profile slave


【解决方案1】:

应检查新配置的设置,例如:用户/组成员身份、文件权限...

还可以安装(升级)Jenkins,它会再次复制产品的文件并尝试重新配置初始化细节。

【讨论】:

    【解决方案2】:

    如果作业设置为使用 Ant,那么您可以将任何初始化放在 ~/.antrc 文件中。这被解释为好像它是 Linux/Mac 上的 shell 脚本。您可以通过强制读取初始化文件来对路径或其他变量进行任何设置,例如:

    . /etc/profile
    . ~/.bash_profile
    

    它在第一个示例中为您工作的原因是 java 进程是从继承环境的命令提示符启动的。在第二种情况下,它启动的服务可能以不同的用户和不同的环境运行。

    如果此方法不起作用,那么您可能会发现在 jenkins 服务启动时会调用一个脚本。尝试man service 查找每个服务的配置文件所在的位置,然后尝试强制包含上述 bash 配置文件。

    【讨论】:

      猜你喜欢
      • 2020-12-25
      • 1970-01-01
      • 1970-01-01
      • 2012-04-04
      • 2014-11-03
      • 2020-01-22
      • 1970-01-01
      • 1970-01-01
      • 2022-10-04
      相关资源
      最近更新 更多