
Для параметризованной сборки, понадобится плагин Active Choices
Переходим в настройки Jenkins‘а

Раздел «Управление плагинами»

Переходим к вкладке «Доступные» и в поиске указываем «Active Choices»

Устанавливаем его.
Создаем «New Item» — «Pipeline«, указываем, что это будет параметризованная сборка, и добавляем параметр «Active Choices Parameter»

Указываем, что это «Groovy Script» и вставляем туда следующее:
import com.cloudbees.plugins.credentials.Credentials;
import com.cloudbees.plugins.credentials.CredentialsNameProvider;
import com.cloudbees.plugins.credentials.common.StandardCredentials;
import com.cloudbees.jenkins.plugins.sshcredentials.SSHUserPrivateKey;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.ChannelExec;
import jenkins.model.*
sshCredentialsId = 'instance_ssh_key'
sshUser = 'artem'
sshInstance = '192.168.1.100'
def sshCreds = com.cloudbees.plugins.credentials.CredentialsProvider.lookupCredentials(SSHUserPrivateKey.class, Jenkins.instance, null, null ).find({it.id == sshCredentialsId});
String ssh_key_data = sshCreds.getPrivateKeys()
JSch jsch = new JSch();
jsch.addIdentity("id_rsa", ssh_key_data.getBytes(), null, null);
Session session = jsch.getSession(sshUser, sshInstance, 22);
Properties prop = new Properties();
prop.put("StrictHostKeyChecking", "no");
session.setConfig(prop);
session.connect();
ChannelExec channelssh = (ChannelExec)session.openChannel("exec");
channelssh.setCommand("cat /home/artem/secret_list");
channelssh.connect();
def result = []
InputStream is=channelssh.getInputStream();
is.eachLine {
result.add(it)
}
channelssh.disconnect();
return result
Где значение переменных, «sshCredentialsId» — Jenkins Credentials ID с типом: «SSH Username with private key»;
«sshUser» — имя пользователя для SSH подключения;
«sshInstance» — IP адрес или доменное имя удаленного инстанса;
«cat /home/artem/secret_list» — команда, результат которой мы хотим вернуть