Jenkins掩码密码用于“执行系统Groovy脚本”

时间:2017-05-19 10:13:17

标签: jenkins groovy

我试图通过使用“系统Groovy脚本”的jenkins将应用程序取消部署/部署到Tomcat。

对于取消部署/部署,我需要凭据。 这些我通过“掩码密码”(用户和密码)掩盖了jenkins的工作

我无法在我的“系统Groovy脚本”中正确使用这些变量。

当我直接使用脚本中的凭据时,它工作正常。 这是我的“系统Groovy脚本”:

def ant = new AntBuilder()

//def user = build.getEnvVars()['user']
//def password = build.getEnvVars()['password']


ant.taskdef( name: 'deploy', classname: 'org.apache.catalina.ant.DeployTask' )
ant.taskdef( name: 'undeploy', classname: 'org.apache.catalina.ant.UndeployTask' )

ant.undeploy(
    url:deployURL,
    username:"${user}",
    password:"${password}",
    path:deployPath,
    failonerror:true)

ant.deploy(
    url:deployURL,
    username:"${user}",
    password:"${password}",
    path:deployPath
    war:warfile)

1 个答案:

答案 0 :(得分:0)

Jenkins Credentials Store Access via Groovy

我通过以下方式使用上述链接中的解决方案:

def credentials_store = jenkins.model.Jenkins.instance.getExtensionList(
        'com.cloudbees.plugins.credentials.SystemCredentialsProvider')

credentials_store[0].credentials.each { ThisJenkins ->
    if (ThisJenkins instanceof com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl) {
        if (ThisJenkins.username == "MyUser") {
            user = ThisJenkins.username
            password = ThisJenkins.password
        }
    }
}

稍后我使用"用户"和#34;密码"我的部署:

ant.undeploy(
    url:'MyServer',
    username: user,
    password: password,
    path:'/MyTool',
    failonerror:false)