Как получить файлы из удаленных систем через S SH в параметрах активного выбора Jenkins - PullRequest
0 голосов
/ 20 июня 2020

Мне нужно получить файлы из удаленных систем и отобразить их в раскрывающемся списке. Я использую параметр активного выбора со сценарием groovy, но не могу подключиться к S SH и получить удаленные файлы

Ниже скрипт, который я выполнил в параметре активного выбора

def sout = new StringBuffer(), serr = new StringBuffer()
def proc = "sshpass -p 'password' ssh -p 22 username@hostname ls -l".execute()
proc.consumeProcessOutput(sout, serr)
proc.waitForOrKill(1000)
return sout.tokenize()

1 Ответ

1 голос
/ 22 июня 2020

Более надежным способом было бы использование библиотеки (Java), которая обрабатывает S SH, например JSCH (http://www.jcraft.com/jsch/), например:

JSch jsch = new JSch();
Session session = jsch.getSession("$username","$host", 22);
session.setPassword("password");

// Avoid asking for key confirmation 
// depends on your needs but given your use case it might be a good idea
Properties prop = new Properties();
prop.put("StrictHostKeyChecking", "no");
session.setConfig(prop);

session.connect();

ChannelExec channelssh = (ChannelExec)session.openChannel("exec");
channelssh.setCommand("ls -l"); // restore date
channelssh.connect();

InputStream is=channel.getInputStream();
is.eachLine {
    println(it)
}
channelssh.disconnect();
...