Jenkins文件管道访问;“全局密码”;

Jenkins文件管道访问;“全局密码”;,jenkins,passwords,jenkins-pipeline,Jenkins,Passwords,Jenkins Pipeline,如何访问Jenkins全局配置中定义的密码 默认情况下,密码不会被注入,我尝试了下面的代码,能够访问“全局属性”,但没有密码 def envVars = Jenkins.instance.getGlobalNodeProperties()[0].getEnvVars() println envVars['MY_VARIABLE'] 使用随附的步骤。您指的是Jenkins->Manage Jenkins->Global properties吗 如果是,下面是我们在groovy脚本中检索它们的方

如何访问Jenkins全局配置中定义的密码

默认情况下,密码不会被注入,我尝试了下面的代码,能够访问“全局属性”,但没有密码

def envVars = Jenkins.instance.getGlobalNodeProperties()[0].getEnvVars() 
println envVars['MY_VARIABLE']

使用随附的步骤。

您指的是Jenkins->Manage Jenkins->Global properties吗

如果是,下面是我们在groovy脚本中检索它们的方式:

import jenkins.model.*

instance = Jenkins.getInstance()
globalNodeProperties = instance.getGlobalNodeProperties()

globalNodeProperties.each {
  envVars = it.getEnvVars()
  if (envVars.get('ARTIFACTORY_USR') != null) {
   artifactory_usr = envVars.get('ARTIFACTORY_USR');
  }
  if (envVars.get('ARTIFACTORY_PSW') != null) {
   artifactory_pwd = envVars.get('ARTIFACTORY_PSW');
  }
}

ARTIFACTORY_USR和ARTIFACTORY_PSW是预定义的全局属性

通常,我在Jenkins->credentials页面中创建凭据以访问管道中的凭据

如何在Jenkins中创建凭据 1.打开凭证页面(Jenkins-->凭证) 2.使用用户名和密码创建凭据并定义有效ID(例如:myCredentialId)

如何在管道中使用访问凭据

pipeline {
agent any

stages {
    stage("Access the credentials") {
        steps {
            script {
               withCredentials([[
                $class:'UsernamePasswordMultiBinding', 
                credentialsId: 'myCredentialId',
                usernameVariable:'username',
                passwordVariable:'token'
                ]]) {
                 sh '''
                  curl -u ${username}:${token} -L <replace your git URL> -o master.txt
                  cat master.txt   
                '''
                }
            }
        }
    }
}
管道{
任何代理人
舞台{
阶段(“访问凭据”){
台阶{
剧本{
凭证件([[
$class:'UsernamePasswordMultiBinding',
CredentialId:“myCredentialId”,
usernameVariable:'username',
passwordVariable:'token'
]]) {
“嘘”
curl-u${username}:${token}-L-o master.txt
cat master.txt
'''
}
}
}
}
}

}

没错,但它需要定义其他凭据配置-问题是关于访问“全局密码”中定义的密码。对不起,我不知道Jenkins中的“全局密码”是什么。这些是在哪里定义的?在:Jenkins->Global configuration->configuration中,我的安装中没有“全局密码”部分。它来自插件吗?你检查过以下内容吗?我知道它在powershell中,但我认为同样的概念也可以在Bash中应用,因为您使用的是EnvInject还是凭据绑定插件?为了澄清一些问题,请查看自由风格作业的config.xml文件,在其中我可以使用“全局密码”,它是plugin=”envinject@2.1.6“将injectGlobalPasswords设置为true。虽然“全局属性”被正确地注入,但这一部分似乎不能很好地用于基于我试图设置的Jenkinsfile的多分支管道。因此,我期待着类似于我在问题中发布的属性的解决方案。这是关于全局密码而不是属性。似乎我们都很困惑,不知道这个“全局密码”功能。似乎有答案。。。“不要混淆EnvInject插件和凭据绑定插件。这两个插件的功能完全不同,但都允许全局管理密码,但方式不同。”