Я хочу иметь экземпляр aws ec2 в качестве раба Дженкинса.SSH Ключи для авторизации между машинами уже на месте.Если я настраиваю все через узлы Jenkins вручную, это работает, когда я пытаюсь настроить все автоматически с помощью groovy, это приводит к отключению ведомого устройства.
Основная причина Я хочу выполнить задания jenkins во втором awsЭкземпляр и настройка подключения к новому узлу должны выполняться автоматически.
Вопрос: Как мне правильно настроить подчиненный ssh с groovy?Или есть другой плагин, который может заставить его работать?
Исходный код Groovy:
// Define a "Launch method": "Launch slave agents via SSH"
SSHLauncher sshLauncher = new hudson.plugins.sshslaves.SSHLauncher(
"slave.target.com", // Host
22, // Port
"sdfsdfsdf-32423-sfd-wer", // Credentials Id
(String)"", // JVM Options
(String)"/usr/bin/java", // JavaPath
(String)"", // Prefix Start Slave Command
(String)"", // Suffix Start Slave Command
(Integer)210, // Connection Timeout in Seconds
(Integer)10, // Maximum Number of Retries
(Integer)15, // The number of seconds to wait between retries
new hudson.plugins.sshslaves.verifiers.NonVerifyingKeyVerificationStrategy() // Host Key Verification Strategy Off because of EC2 Redeploy
)
sshLauncher.setTcpNoDelay(true)
// Define a "Permanent Agent"
hudson.slaves.DumbSlave agent = new hudson.slaves.DumbSlave(
"jenkins-slave", // agent node name
"Jenkins Second Slave", // agent node description
"/home/jenkins", // home directory
"1", // Max Runner
Node.Mode.EXCLUSIVE, // agent mode
"jenkins-slave", // agent label
sshLauncher,
new RetentionStrategy.Always(),
new LinkedList())
List<Entry> env = new ArrayList<Entry>();
env.add(new Entry("node","jenkins-slave"))
env.add(new Entry("JAVA_HOME","/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.amzn2.x86_64/jre"))
EnvironmentVariablesNodeProperty envPro = new EnvironmentVariablesNodeProperty(env);
agent.getNodeProperties().add(envPro)
// Create a "Permanent Agent"
Jenkins.instance.addNode(agent)
Среда: Jenkins Версия:2.141 SSH Slave Plugin Версия: 1.28.1
Ошибка системного журнала Jenkins
Caught exception evaluating: it.launcher.descriptor==d in /computer/jenkins-slave/configure. Reason: java.lang.reflect.InvocationTargetException
java.lang.AssertionError: class hudson.plugins.sshslaves.SSHLauncher is missing its descriptor
at jenkins.model.Jenkins.getDescriptorOrDie(Jenkins.java:1514)
at hudson.model.AbstractDescribableImpl.getDescriptor(AbstractDescribableImpl.java:42)
Caused: java.lang.reflect.InvocationTargetException
Результаты поиска Google SSH + Slaves +плагин Doku Хорошие примеры реализации