我试图通过使用“系统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)
答案 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)