我有两个不同的Linux服务器(prod和dev),它们具有不同的$HOSTNAME
和不同的证书,默认情况下,证书以主机名命名。
现在我想在Jenkins-Pipeline中确定我在哪个主机上,从而使用正确的证书。
为此,我编写了以下测试脚本:
def labels = []
labels.add('jenkins_<agenthost>_x86')
def builders = [:]
for (x in labels) {
def label = x
builders[label] = {
ansiColor('xterm') {
node (label) {
stage('cleanup') {
deleteDir()
}
stage('test') {
sh """
echo $HOSTNAME
"""
}
}
}
}
}
parallel builders
字符串
因为$HOSTNAME
没有定义,所以它不起作用。
groovy.lang.MissingPropertyException: No such property: HOSTNAME for class: groovy.lang.Binding
型
如何在管道中的sh
中获取jenkins-agent的主机名?
因为你可以用任何你喜欢的方式命名节点,你不能只使用NODE_NAME
,它不必与你在代理机器上的bash上从echo $HOSTNAME
获得的$HOSTNAME
相同。
3条答案
按热度按时间bgibtngc1#
字符串
您可以从URL获取主机名
dz6r00yl2#
字符串
您可以添加此shell命令并从环境变量中获取主机名。
mrzz3bfm3#
不是sh step,但你可以使用groovy:
字符串