是否可以在 jenkins 中使用具有给定 ip 模式的 jenkins-agent?
Is it possible to use jenkins-agent with given ip pattern in jenkins?
基本上,一个 jenkins-server 中有很多 jenkins-nodes。多数的launch-method
是launch agents via ssh
,launch method
选项下的host
是实际ip。然而,大多数的标签是空的。
主要问题是我的服务器前面有防火墙 10.227.10.10
。简而言之,此防火墙将阻止数据包。如果使用如下所示的 jenkins-pipeline,来自某些 jenkins-nodes 的数据包可能会被防火墙阻止。
我看了pipeline syntax,label
可以解决。但是,配置 jenkins-nodes 的 label
部分需要大量工作。有什么想法吗?
pipeline {
agent any
stages {
stage('stage1') {
agent any
// agent {ip '10.227.*.*'} // This would be a better solution
steps {
sh "curl http://10.227.10.10"
}
}
}
}
我不认为该 IP 地址可用作 Slave or via getComputer()
的 属性
Pipeline Agent, label only supports explicit labels,但确实有条件。您可以创建一个新标签(例如:“227Net
”),使用下面的控制台 groovy 脚本将其添加到节点,然后在您的管道中引用该标签:
agent { node { label '227Net' } }
应该可以正常工作。
def newLabel = '227Net'
Jenkins.instance.slaves.findAll {it.name.contains('10.227') }.each {agent ->
oldLabelString = agent.getLabelString()
println "Relabeling ${agent.name} : ${oldLabelString} + ${newLabel}"
newLabelString = oldLabelString + " " + newLabel
agent .setLabelString(newLabelString)
}
return
基本上,一个 jenkins-server 中有很多 jenkins-nodes。多数的launch-method
是launch agents via ssh
,launch method
选项下的host
是实际ip。然而,大多数的标签是空的。
主要问题是我的服务器前面有防火墙 10.227.10.10
。简而言之,此防火墙将阻止数据包。如果使用如下所示的 jenkins-pipeline,来自某些 jenkins-nodes 的数据包可能会被防火墙阻止。
我看了pipeline syntax,label
可以解决。但是,配置 jenkins-nodes 的 label
部分需要大量工作。有什么想法吗?
pipeline {
agent any
stages {
stage('stage1') {
agent any
// agent {ip '10.227.*.*'} // This would be a better solution
steps {
sh "curl http://10.227.10.10"
}
}
}
}
我不认为该 IP 地址可用作 Slave or via getComputer()
的 属性Pipeline Agent, label only supports explicit labels,但确实有条件。您可以创建一个新标签(例如:“227Net
”),使用下面的控制台 groovy 脚本将其添加到节点,然后在您的管道中引用该标签:
agent { node { label '227Net' } }
应该可以正常工作。
def newLabel = '227Net'
Jenkins.instance.slaves.findAll {it.name.contains('10.227') }.each {agent ->
oldLabelString = agent.getLabelString()
println "Relabeling ${agent.name} : ${oldLabelString} + ${newLabel}"
newLabelString = oldLabelString + " " + newLabel
agent .setLabelString(newLabelString)
}
return