使用Jenkins Groovy脚本创建Unix从节点

3
我想知道如何用Jenkins Groovy脚本创建一个UNIX从服务器并启动它。我有下面的代码,它能很好地运行。但是它没有在从服务器中创建ssh选项,也没有启动从服务器。我看到了JNLPLauncher(),我认为我需要改变一些东西来使用ssh启动器。即使只是指向我找不到的文档,我也会感激任何帮助。此外,这段代码的目的是在构建时启动从服务器,并在构建结束后删除从服务器。我需要根据用户选择的参数进行动态从服务器分配。因此,如果有其他实现方式,也请提出您的想法。
import jenkins.model.*
import hudson.model.*
import hudson.slaves.*

Jenkins.instance.addNode(
  new DumbSlave(
    "test-script",
    "test slave description",
    "/export/home/pe-deploy/",
    "1",
    Node.Mode.NORMAL,
    "test-slave-label",
    new JNLPLauncher(),
    new RetentionStrategy.Always(),
    new LinkedList()))
2个回答

8
这是我在Cloudbees支持网站上找到的答案,它帮助我达到了目标。重要的一行是 import hudson.plugins.sshslaves.*,因为SSHLauncher是一个插件的一部分。
来源:https://support.cloudbees.com/hc/en-us/articles/218154667-create-agent-node-from-groovy
import jenkins.model.*
import hudson.model.*
import hudson.slaves.*
import hudson.plugins.sshslaves.*
import java.util.ArrayList;
import hudson.slaves.EnvironmentVariablesNodeProperty.Entry;

  List<Entry> env = new ArrayList<Entry>();
  env.add(new Entry("key1","value1"))
  env.add(new Entry("key2","value2"))
  EnvironmentVariablesNodeProperty envPro = new EnvironmentVariablesNodeProperty(env);
  Slave slave = new DumbSlave(
                    "agent-node","Agent node description",
                    "/home/jenkins",
                    "1",
                    Node.Mode.NORMAL,
                    "agent-node-label",
                    new SSHLauncher("agenNode",22,"user","password","","","","",""),
                    new RetentionStrategy.Always(),
                    new LinkedList())
  slave.getNodeProperties().add(envPro)
  Jenkins.instance.addNode(slave)

1
更新: 新的URL:https://support.cloudbees.com/hc/zh-cn/articles/218154667-使用Groovy创建代理节点 - alexrjs
链接已根据编辑更新并被接受。谢谢用户6917。 - Peter Schneider

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接