AWS EC2 Centos 7 VM에서 Jenkins 슬레이브 작업을 실행할 수 없습니다.

AWS EC2 Centos 7 VM에서 Jenkins 슬레이브 작업을 실행할 수 없습니다.

내 Jenkins 마스터 서버는 로컬에서 실행 중이고 슬레이브 서버는 AWS에서 실행 중입니다. Centos 7 EC2 가상 머신입니다.

Jenkins가 scp를 통해 Slave.jar 파일을 푸시하려고 하면 다음 오류 메시지와 함께 실패합니다.

    java.io.IOException: Could not open channel (state:4)
    at com.trilead.ssh2.channel.ChannelManager.ioException(ChannelManager.java:1543)
    at com.trilead.ssh2.channel.ChannelManager.waitUntilChannelOpen(ChannelManager.java:122)
    at com.trilead.ssh2.channel.ChannelManager.openSessionChannel(ChannelManager.java:574)
    at com.trilead.ssh2.Session.<init>(Session.java:42)
    at com.trilead.ssh2.Connection.openSession(Connection.java:1145)
    at com.trilead.ssh2.SFTPv3Client.<init>(SFTPv3Client.java:99)
    at com.trilead.ssh2.SFTPv3Client.<init>(SFTPv3Client.java:119)
    at hudson.plugins.sshslaves.SFTPClient.<init>(SFTPClient.java:43)
    at hudson.plugins.sshslaves.SSHLauncher.copySlaveJar(SSHLauncher.java:1138)
    at hudson.plugins.sshslaves.SSHLauncher.access$400(SSHLauncher.java:148)
    at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:833)
    at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:810)
    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: java.io.IOException: The server refused to open the channel (SSH_OPEN_ADMINISTRATIVELY_PROHIBITED, 'open failed')
    at com.trilead.ssh2.channel.Channel.setReasonClosed(Channel.java:331)
    at com.trilead.ssh2.channel.ChannelManager.msgChannelOpenFailure(ChannelManager.java:1392)
    at com.trilead.ssh2.channel.ChannelManager.handleMessage(ChannelManager.java:1484)
    at com.trilead.ssh2.transport.TransportManager.receiveLoop(TransportManager.java:809)
    at com.trilead.ssh2.transport.TransportManager$1.run(TransportManager.java:502)
    ... 1 more
java.io.IOException: Could not copy slave.jar into '/home/nutanix' on slave
    at hudson.plugins.sshslaves.SSHLauncher.copySlaveJarUsingSCP(SSHLauncher.java:1222)
    at hudson.plugins.sshslaves.SSHLauncher.copySlaveJar(SSHLauncher.java:1183)
    at hudson.plugins.sshslaves.SSHLauncher.access$400(SSHLauncher.java:148)
    at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:833)
    at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:810)
    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: java.io.IOException: Could not open channel (state:4)
    at com.trilead.ssh2.channel.ChannelManager.ioException(ChannelManager.java:1543)
    at com.trilead.ssh2.channel.ChannelManager.waitUntilChannelOpen(ChannelManager.java:122)
    at com.trilead.ssh2.channel.ChannelManager.openSessionChannel(ChannelManager.java:574)
    at com.trilead.ssh2.Session.<init>(Session.java:42)
    at com.trilead.ssh2.Connection.openSession(Connection.java:1145)
    at com.trilead.ssh2.Connection.exec(Connection.java:1566)
    at hudson.plugins.sshslaves.SSHLauncher.copySlaveJarUsingSCP(SSHLauncher.java:1216)
    ... 8 more
Caused by: java.io.IOException: The server refused to open the channel (SSH_OPEN_ADMINISTRATIVELY_PROHIBITED, 'open failed')

제공되는 솔루션SSH 터널 오류: "채널 1: 열기 실패: 관리자 금지: 열기 실패"나에게 적합하지 않습니다.

답변1

확인하거나 해결해 볼 수 있는 몇 가지 사항은 다음과 같습니다.

  1. Jenkins 서버가 SSH를 통해 모든 슬레이브 서버에 액세스할 수 있는지 확인하려면 AWS의 보안 그룹을 확인하세요. 이미 준비가 되어 있는 것 같지만 확인해 볼 가치가 있습니다.
  2. Jenkins 서버에 로그인하고 명령줄에서 직접 Slaver 서버에 연결해 보세요. 이 방법으로 오류 없이 연결할 수 있는지 확인하세요. 그런 다음 연결하려는 사용자가 Jenkins가 사용하려는 사용자와 동일한지 확인하세요. 출력에 "슬레이브의 '/home/nutanix'에 Slave.jar을 복사할 수 없습니다."가 표시됩니다. 내부에Linux 인스턴스 연결에 대한 AWS 설명서, CentOS 시스템의 사용자 이름은 다음과 같습니다.센토스. Jenkins가 해당 사용자 이름을 사용하도록 구성되어 있고 해당 사용자로 로그인하는 데 필요한 키에 액세스할 수 있는지 확인하세요.
  3. 사용을 고려해보세요Amazon EC2 플러그인AWS의 슬레이브에 연결하는 데 사용됩니다. 이 플러그인을 사용하면 대부분의 설정이 구성에서 완료되므로 작업 수준에서 걱정할 필요가 없습니다. 또한 슬레이브는 필요에 따라 스핀업 및 다운되므로 AWS 비용을 낮게 유지할 수 있습니다.

관련 정보