如何在Windows 2012 r2 x64上运行jenkins slave?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Windows 2012 r2 x64上运行jenkins slave?相关的知识,希望对你有一定的参考价值。
我们希望使用jenkins在Windows 2012 R2 x64上构建一些特定的软件。但是当我尝试运行它时,主节点失败了这个错误:
Connecting to 192.168.1.27
Checking if Java exists
C:Program FilesJavajdk1.6.0_30injava.exe -version returned 1.6.0.
Installing the Jenkins slave service
ERROR: Message not found for errorCode: 0xC00000AC
org.jinterop.dcom.common.JIException: Message not found for errorCode: 0xC00000AC
at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenHKLM(JIWinRegStub.java:102)
at hudson.util.jna.DotNet.isInstalled(DotNet.java:77)
at hudson.os.windows.ManagedWindowsServiceLauncher.launch(ManagedWindowsServiceLauncher.java:292)
at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:222)
at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:701)
Caused by: jcifs.smb.SmbException: All pipe instances are busy.
at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:563)
at jcifs.smb.SmbTransport.send(SmbTransport.java:664)
at jcifs.smb.SmbSession.send(SmbSession.java:238)
at jcifs.smb.SmbTree.send(SmbTree.java:119)
at jcifs.smb.SmbFile.send(SmbFile.java:775)
at jcifs.smb.SmbFile.open0(SmbFile.java:989)
at jcifs.smb.SmbFile.open(SmbFile.java:1006)
at jcifs.smb.SmbFileOutputStream.<init>(SmbFileOutputStream.java:142)
at jcifs.smb.TransactNamedPipeOutputStream.<init>(TransactNamedPipeOutputStream.java:32)
at jcifs.smb.SmbNamedPipe.getNamedPipeOutputStream(SmbNamedPipe.java:187)
at rpc.ncacn_np.RpcTransport.attach(RpcTransport.java:91)
at rpc.Stub.attach(Stub.java:104)
at rpc.Stub.call(Stub.java:109)
at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenHKLM(JIWinRegStub.java:100)
而且我不知道出了什么问题。
是的,我仔细阅读了this。
UPD。好。我从域中删除了服务器。现在詹金斯说:
Connecting to 192.168.1.27 Checking if Java exists C:Program FilesJavajdk1.6.0_30injava.exe -version returned 1.6.0. Installing the Jenkins slave service Copying jenkins-slave.exe Copying slave.jar Copying jenkins-slave.xml Registering the service Starting the service Waiting for the service to become ready ERROR: The service did not respond. Perhaps it failed to launch?
在事件查看器中,我看到:
Service cannot be started. System.ComponentModel.Win32Exception: The system cannot find the file specified at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) at winsw.WrapperService.StartProcess(Process process, String arguments, String executable) at winsw.WrapperService.OnStart(String[] _) at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)
我在Windows 2012 R2 x64上遇到了同样的问题:
Installing the Jenkins slave service
ERROR: Message not found for errorCode: 0xC00000AC
org.jinterop.dcom.common.JIException: Message not found for errorCode: 0xC00000AC
at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenHKLM(JIWinRegStub.java:102)
at hudson.util.jna.DotNet.isInstalled(DotNet.java:77)
at hudson.os.windows.ManagedWindowsServiceLauncher.launch(ManagedWindowsServiceLauncher.java:292)
at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:228)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: jcifs.smb.SmbException: All pipe instances are busy.
at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:563)
at jcifs.smb.SmbTransport.send(SmbTransport.java:664)
at jcifs.smb.SmbSession.send(SmbSession.java:238)
at jcifs.smb.SmbTree.send(SmbTree.java:119)
at jcifs.smb.SmbFile.send(SmbFile.java:775)
at jcifs.smb.SmbFile.open0(SmbFile.java:989)
at jcifs.smb.SmbFile.open(SmbFile.java:1006)
at jcifs.smb.SmbFileOutputStream.<init>(SmbFileOutputStream.java:142)
at jcifs.smb.TransactNamedPipeOutputStream.<init>(TransactNamedPipeOutputStream.java:32)
at jcifs.smb.SmbNamedPipe.getNamedPipeOutputStream(SmbNamedPipe.java:187)
at rpc.ncacn_np.RpcTransport.attach(RpcTransport.java:91)
at rpc.Stub.attach(Stub.java:104)
at rpc.Stub.call(Stub.java:109)
at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenHKLM(JIWinRegStub.java:100)
... 7 more
并且已经发现,作为服务运行的jenkins slave需要安装.net 3.x(在win2012服务器上默认不是这样)。
安装3.5 .net框架后,jenkins slave服务安装没有问题(并且服务器保留在域中)。
如果您在安装3.5框架时遇到问题,请不要浪费时间,请参阅此SO答案:Offline installer for .Net 3.5 SP1 not working(禁用WSUS帮助我完成安装)
我有这个问题:
服务无法启动。 System.ComponentModel.Win32Exception:系统无法在winsw.WrapperService.OnStart(String []的winsw.WrapperService.StartProcess(进程进程,字符串参数,字符串可执行文件)中找到在System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)中指定的文件。 ] _)at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)
当我将Path更改为java可执行文件时,问题就消失了:
C:ProgramDataOracleJavajavapathjavaw
至
C:ProgramDataOracleJavajavapathjava
无论如何,我认为'w'附加了JENKINS。
我有一个Windows 8奴隶,它确实有效。很可能Java路径不正确,我的设置为C: Program Files(x86) Java jre7 bin java(是的,没有.exe或任何东西,只调整Program(x86)文件部分,如果你想在Jenkins中使用x64版本。我也有远程root设置(到C: jenkins),我有一个环境变量HOME设置为C: jenkins (是的,一个是和另一个没有),但这只是为了让它很容易找到安装后的文件。
我的奴隶工作,出现在网上,然后一段时间(大多数闲置)将有连接问题。断开连接和重新连接有时会给“所有管道实例都很忙”错误,在这种情况下,我只需要做几次启动从属代理。在尝试解决该特定问题时发现了您的问题......
首先,您可以转到从机,转到Jenkins - > Manage - > Manage Nodes并选择Slave并通过java web start启动。
通过执行此操作,您将下载.jnlp文件并使用您配置的java启动它。
确保已在系统变量“PATH”(版本1.6或更高版本)中配置了javaws.exe的路径。
它将启动一个窗口并显示为“已连接”。现在您可以单击“文件”并安装为服务。
如果计算机没有.NET 3.x,则无法为您提供异常,因此请确保已安装它,然后再次尝试。
这很干净,没有任何问题。希望这可以帮助。
对我来说,通过卸载旧的Java解决了这个问题。
以上是关于如何在Windows 2012 r2 x64上运行jenkins slave?的主要内容,如果未能解决你的问题,请参考以下文章
基于Windows Server 2012 R2 x64搭建Redmine
为啥windows 2012 r2x64系统安装桌面体验后,开机输入账户密码后是黑屏的,也没有任何命令行界面
Pig 0.12.0 在 Windows 2008 r2 x64 上的 Hadoop 2.3.0