在同一台Windows计算机上安装多个Jenkins实例会导致问题

时间:2016-07-02 09:15:00

标签: windows jenkins multiple-instances

我最近看到一个博客,建议Jenkins的两个实例可以在同一台Windows机器上运行:Two Guys Arguing, Pro Tips: Run Multiple Jenkins CI Servers on a Single Machine

但是我没有部署jenkins.war,而是在我的Windows机器上安装了已经安装好的Jenkins的另一台Jenkins,这导致之前的Jenkins停止了。

2 个答案:

答案 0 :(得分:4)

我错误地使用标准Windows安装来安装Jenkins,而不是像war那样部署:{/ p>

java -DJENKINS_HOME=/path/to/configs -jar jenkins.war --httpPort=9090

导致Jenkins服务的可执行路径发生了变化。 (因为在第二次Jenkins安装期间,我选择了不同的JENKINS_HOME_1路径。)

为了犯另一个错误,我尝试卸载第二次安装,但是Windows Jenkins服务的exe路径仍为JENKINS_HOME_1(以前的C:/Jenkins/jenkins.exe)。

为了解决这个问题,我必须通过以下方式更改可执行文件

  • 命令行:

    sc config Jenkins binPath="C:\Program Files (x86)\Jenkins\jenkins.exe"
    

  • 注册表更改:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Jenkins\ImagePath="C:\Program Files (x86)\Jenkins\jenkins.exe"
    

我会再次尝试java -jar jenkins选项。

答案 1 :(得分:1)

安装下一个jenkins实例的步骤:

  1. 您需要将工作jenkins文件夹的完整副本复制到第二个位置。 例如D:\jenkins2

  2. 接下来你需要编辑这个文件夹文件jenkins.xml。修改行

    <arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8083 --webroot="%BASE%\war"</arguments>
    

    并将值--httpPort设置为预期值。

  3. 以管理员身份运行cmd.exe

  4. 在cmd内部运行命令:sc.exe create JenkinsUpgrade binpath= "D:\jenkins2\jenkins.exe" displayname="Jenkins for Upgrade"

    其中JenkinsUpgrade是服务名称,必须是唯一的,

    binpath包含新jenkins实例的所需路径,

    displayname是服务中显示的名称。

    此命令在分隔的目录中创建jenkins服务器的新实例。

  5. 要卸载此实例,您可以使用命令sc delete JenkinsUpgrade