【问题标题】:Active Choices Parameter with Credentials带凭据的活动选择参数
【发布时间】:2018-11-19 16:43:59
【问题描述】:

我正在尝试访问存储在 Jenkins 中的凭据,而无需在脚本本身中对其进行硬编码。

#!/usr/bin/env groovy
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'AWS_ACCESS_KEY_ID', credentialsId: 'GroovyAWSScMgr', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) {
    return ["${env.AWS_ACCESS_KEY_ID}"]
}

我试过了:

return [AWS_ACCESS_KEY_ID]

return [env.AWS_ACCESS_KEY_ID]

return ["${env.AWS_ACCESS_KEY_ID}"]

return ["${env.AWS_ACCESS_KEY_ID}"]

结果继续为NULL

【问题讨论】:

  • 结果如何? null?
  • 我在帖子中添加了 NULL 的事实。谢谢。
  • 好吧,我猜您应该无法提取凭据。因此,withCredentials 步骤可能不会转发闭包的返回值,而是声明为void
  • 这里是大图paste.ee/p/RTo2x

标签: jenkins jenkins-groovy


【解决方案1】:

你可以试试这个:

import jenkins.model.*

credentialsId = 'GroovyAWSScMgr'

def creds = com.cloudbees.plugins.credentials.CredentialsProvider.lookupCredentials(
  com.cloudbees.plugins.credentials.common.StandardUsernameCredentials.class, Jenkins.instance, null, null ).find{
    it.id == credentialsId}

return [creds.username]

您可以在脚本中使用creds.usernamecreds.password

我不确定它是否安全。

【讨论】:

  • 它在 jenkins scriptler 中对我有用,但是当我尝试将此代码添加到参数的脚本部分时 - 没有任何反应:script:"""import jenkins.model.*credentialsId = 'xxx'def creds =@ 987654329@return [creds.getSecret()]"""我在approver中批准了
  • 其实可以,我的错,我忘了把属性sandbox改成false
【解决方案2】:

我为我的一项工作在 Active Choices Parameter 中尝试了类似的方法,但没有任何效果。我改为使用以下内容来防止硬编码凭据

定义您的凭据,例如。在您的情况下,AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 具有适当的值,作为 Manage Jenkins -> Configure System -> Global properties 中的环境变量并在您的脚本中检索它们

import jenkins.model.*

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

aws_access_key_id = ''
aws_secret_key = ''

globalNodeProperties.each {
  envVars = it.getEnvVars()
  if (envVars.get('AWS_ACCESS_KEY_ID') != null) {
   aws_access_key_id = envVars.get('AWS_ACCESS_KEY_ID');
  }
  if (envVars.get('AWS_SECRET_ACCESS_KEY') != null) {
   aws_secret_key = envVars.get('AWS_SECRET_ACCESS_KEY');
  }
}

您可以在脚本中将它们称为${aws_access_key_id}${aws_secret_key}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    相关资源
    最近更新 更多