Как запустить Jenkins slave в windows 2012 r2 x64?

мы хотим использовать jenkins для создания определенного программного обеспечения в Windows 2012 R2 x64. Но когда я пытаюсь запустить его, главный узел терпит неудачу, это ошибка:

Connecting to 192.168.1.27
Checking if Java exists
C:Program FilesJavajdk1.6.0_30binjava.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.call(SlaveComputer.java:222)
    at jenkins.util.ContextResettingExecutorService.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)

и я не знаю, что это неправильно.

Да, я читал этой тщательно.

upd. ладно. Я удалил сервер из домена. Теперь Дженкинс говорит::

Connecting to 192.168.1.27
    Checking if Java exists
    C:Program FilesJavajdk1.6.0_30binjava.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? 

В EventViewer я вижу:

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)

5 ответов


У меня была такая же проблема на 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.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 framework ведомая служба jenkins была установлена без проблем (и сервер остался в домене).

чтобы не терять время в случае, если вы нажмете проблемы при установке 3.5 framework, как я сделал, обратитесь к этому Так ответьте:автономный установщик для .Net 3.5 SP1 не работает (отключение WSUS помогло мне пройти установку)


у меня был этот вопрос:

не удается запустить службу. Система.ComponentModel.Win32Exception: не удается найти указанный файл в системе.Диагностика.Процесс.StartWithCreateProcess(ProcessStartInfo startInfo) в winsw.WrapperService.StartProcess(процесса, аргументы строка, строка исполняемому) в winsw.WrapperService.Методы OnStart(Строка[] _) в системе.ServiceProcess.Класса servicebase.ServiceQueuedMainCallback (Объект state)

и проблема ушла, когда я изменил путь к исполняемому файлу java из:

C:\ProgramData\Oracle\Java\javapath\javaw

to

C:\ProgramData\Oracle\Java\javapath\java

Я думаю, что " w " в любом случае добавляется Дженкинсом.


У меня есть Windows 8 slave, который работает. Справедливый шанс, что путь Java неверен, мой установлен в C:\Program файлы (x86)\Java\jre7\bin\java (да, нет .exe или что-нибудь, настроить только программа (x86) часть файлов, если вы хотите использовать версию x64) в Jenkins. У меня также есть удаленный root set (to C:\jenkins) и у меня есть переменная среды дома значение C:\jenkins\ (да, один с \ и другие без), но это только для того, чтобы упростить поиск файлов после установки.

Мой раб работает, появляется в интернете, а затем через некоторое время (в основном на холостом ходу) будут проблемы с подключением. Отключение и повторное подключение иногда дает ошибку "все экземпляры трубы заняты", в этом случае мне просто нужно сделать запустить ведомый агент пару раз. Нашел свой вопрос при попытке решить эту конкретную проблему...


во-первых, вы можете перейти к подчиненной машине, перейти к Дженкинсу - > управление - > Управление узлами и выбрать подчиненный и запустить через java web start.

сделав это, вы загрузите .jnlp файл и запустите его с помощью Java, настроенный вами.

убедитесь, что вы настроили путь к javaws.exe в системной переменной "PATH" (с версией 1.6 или выше).

он запустит окно и отобразится как "подключено". Теперь вы можете нажать "Файл" и установить как услуга.

Это не дает вам исключения, если на машине нет .NET 3.x поэтому убедитесь, что вы установили его, а затем повторите попытку.

Это работает очень чисто без каких-либо проблем. Надеюсь, это поможет.


для меня эта проблема была решена путем удаления старой java.