Добавить Windows Slave - PullRequest
       24

Добавить Windows Slave

3 голосов
/ 12 июня 2019

У меня работает Jenkins Master под Linux, и я хочу добавить Windows Slave. В настоящее время я не могу запустить раб:

1) Java Web Start

-> Java Web Start удалена в JDK 11 (и никогда не была частью OpenJDK), поэтому, поскольку мы хотим переключить наш Jenkins для работы с openjdk11, это больше не будет работать, поэтому я даже не пробовал это.

2) Плагин Windows Slave

-> Я следовал за Устранением неполадок и убедился, что порты 135, 139 и 445 доступны от моего мастера Jenkins. К сожалению, я все еще получаю сообщение об ошибке:

2019-06-12 14:54:28] [windows-slaves] Connecting to 1.2.3.4
ERROR: Message not found for errorCode: 0xC0000001
org.jinterop.dcom.common.JIException: Message not found for errorCode: 0xC0000001
    at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenHKCR(JIWinRegStub.java:121)
    at org.jinterop.dcom.core.JIComServer.initialise(JIComServer.java:479)
    at org.jinterop.dcom.core.JIComServer.<init>(JIComServer.java:427)
    at org.jvnet.hudson.wmi.WMI.connect(WMI.java:59)
    at hudson.os.windows.ManagedWindowsServiceLauncher.launch(ManagedWindowsServiceLauncher.java:208)
    at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:294)
    at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
    at jenkins.security.ImpersonatingExecutorService$2.call(ImpersonatingExecutorService.java:71)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: jcifs.smb.SmbException: Failed to connect: 0.0.0.0<00>/1.2.3.4
jcifs.util.transport.TransportException
java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:210)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at jcifs.util.transport.Transport.readn(Transport.java:29)
    at jcifs.smb.SmbTransport.peekKey(SmbTransport.java:388)
    at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:288)
    at jcifs.smb.SmbTransport.doConnect(SmbTransport.java:319)
    at jcifs.util.transport.Transport.run(Transport.java:241)
    at java.lang.Thread.run(Thread.java:748)

    at jcifs.util.transport.Transport.run(Transport.java:258)
    at java.lang.Thread.run(Thread.java:748)

    at jcifs.smb.SmbTransport.connect(SmbTransport.java:309)
    at jcifs.smb.SmbTree.treeConnect(SmbTree.java:156)
    at jcifs.smb.SmbFile.doConnect(SmbFile.java:911)
    at jcifs.smb.SmbFile.connect(SmbFile.java:954)
    at jcifs.smb.SmbFile.connect0(SmbFile.java:880)
    at jcifs.smb.SmbFileInputStream.<init>(SmbFileInputStream.java:77)
    at jcifs.smb.SmbFileInputStream.<init>(SmbFileInputStream.java:66)
    at jcifs.smb.SmbFile.getInputStream(SmbFile.java:2844)
    at rpc.ncacn_np.RpcTransport.attach(RpcTransport.java:90)
    at rpc.Stub.attach(Stub.java:104)
    at rpc.Stub.call(Stub.java:109)
    at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenHKCR(JIWinRegStub.java:119)
    ... 11 more

У кого-нибудь есть предложение? Или альтернатива двум упомянутым подходам?


Edit:

Я должен упомянуть, что ведущий работает локально, а ведомым является виртуальная машина Azure. Существует ExpressRoute, и, как я уже сказал, порты (135, 139, 445) открыты (telnet от главного к подчиненному был успешным для этих портов).

1 Ответ

0 голосов
/ 14 июня 2019

Я отказался от плагина Windows Slave.Вместо этого я успешно подключился к ведомому через SSH!

SSH Daemon по умолчанию не установлен на моем сервере Windows 2019, поэтому мне пришлось выполнить следующие команды:

# install openSSH server
Add-WindowsCapability -Online -Name $(Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Server*' | Select -ExpandProperty Name)

# start sshd
Start-Service sshd

# enable sshd as a service
Set-Service -Name sshd -StartupType 'Automatic'

# check if firewall rule was automatically created
Get-NetFirewallRule -Name *ssh*

Подсказка: Java> = 8 должно быть установлено (и добавлено в PATH) на ведомое устройство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...