Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssh Jenkins:使用命令或groovy脚本动态配置从节点地址_Ssh_Jenkins_Master Slave - Fatal编程技术网

Ssh Jenkins:使用命令或groovy脚本动态配置从节点地址

Ssh Jenkins:使用命令或groovy脚本动态配置从节点地址,ssh,jenkins,master-slave,Ssh,Jenkins,Master Slave,我有点ssh奴隶建立詹金斯设置 Jenkins服务器通过ssh连接到Mac从机。在那里构建ios应用程序。在连接到Mac的Jenkins中配置了两个远程节点。 Mac具有dhcp 每次mac启动时,我都想运行一个脚本,告诉Jenkin服务器配置指向mac接收的dhcp地址的节点IP地址。因为它的dhcp,所以它总是变化的 是否可以配置这样的配置?使用shell脚本或perl e.g. http://jenkins-server:8080/computer/mac-slave-enterprise

我有点ssh奴隶建立詹金斯设置

Jenkins服务器通过ssh连接到Mac从机。在那里构建ios应用程序。在连接到Mac的Jenkins中配置了两个远程节点。 Mac具有dhcp

每次mac启动时,我都想运行一个脚本,告诉Jenkin服务器配置指向mac接收的dhcp地址的节点IP地址。因为它的dhcp,所以它总是变化的

是否可以配置这样的配置?使用shell脚本或perl

e.g. http://jenkins-server:8080/computer/mac-slave-enterprise/configure
是节点配置url。如果可以通过发送host=10.1.2.100&Submit=Save或类似的方式进行设置

我发现可以在以下位置运行Groovy脚本:

http://jenkins/script
或者从mac命令行或sh脚本

$ curl -d "script=<your_script_here>" http://jenkins/script
但无法设置主机地址

println("node desc launcher = " + aSlave.getComputer().getLauncher()); 
  //println("node desc launcher = " + aSlave.getComputer().getLauncher().setHost("10.11.51.70")); 
  println("node launcher host = " + aSlave.getComputer().getLauncher().getHost()); 

  hudson.plugins.sshslaves.SSHLauncher ssl = aSlave.getComputer().getLauncher(); 
  int port = ssl.getPort(); 
  String userName, password, privateKey; 
  userName = ssl.getUsername(); 
  password = ssl.getPassword(); 
  privateKey = ssl.getPrivatekey(); 

  println("user: "+userName + ", pwd: "+password + ", key: "+privateKey); 
// all these values returns null. 

另一种方法是删除节点并重新创建它

下面是有关如何从中删除它的一些groovy:

下面是如何创建一个():

println("node desc launcher = " + aSlave.getComputer().getLauncher()); 
  //println("node desc launcher = " + aSlave.getComputer().getLauncher().setHost("10.11.51.70")); 
  println("node launcher host = " + aSlave.getComputer().getLauncher().getHost()); 

  hudson.plugins.sshslaves.SSHLauncher ssl = aSlave.getComputer().getLauncher(); 
  int port = ssl.getPort(); 
  String userName, password, privateKey; 
  userName = ssl.getUsername(); 
  password = ssl.getPassword(); 
  privateKey = ssl.getPrivatekey(); 

  println("user: "+userName + ", pwd: "+password + ", key: "+privateKey); 
// all these values returns null. 
  for (aSlave in hudson.model.Hudson.instance.slaves) { 
    if (aSlave.name == "MySlaveToDelete") { 
      println('===================='); 
      println('Name: ' + aSlave.name); 
      println('Shutting down node!!!!'); 
      aSlave.getComputer().setTemporarilyOffline(true,null); 
      aSlave.getComputer().doDoDelete(); 
    } 
import jenkins.model.*
import hudson.model.*
import hudson.slaves.*

Jenkins.instance.addNode(new DumbSlave("test-script","test slave description","C:\\Jenkins","1",Node.Mode.NORMAL,"test-slave-label",new JNLPLauncher(),new RetentionStrategy.Always(),new LinkedList()))