【问题标题】:Extract key-pair value in Jenkinsfile在 Jenkinsfile 中提取密钥对值
【发布时间】:2021-08-20 09:01:19
【问题描述】:

我有这个 jenkinsfile,我从中获得了 Hashicorp 保险库的价值。秘密在键值对中。我已将其存储在 secret_key 变量中。如何从中提取价值

node {
    withCredentials([[$class: 'VaultTokenCredentialBinding', 
                      addrVariable: 'VAULT_ADDR', 
                      credentialsId: 'token', 
                      tokenVariable: 'VAULT_TOKEN', 
                      vaultAddr: 'http://ip:8200']]) {
        script{
            secret_key = sh (
                        script: 'vault kv get -format json -field=data kv/secret', 
                        returnStdout: true
                        )
        }
    }
}

输出:

+ vault kv get -format json -field=data kv/secret
{
  "password": "admin",
  "username": "admin"
}

【问题讨论】:

    标签: jenkins groovy jenkins-pipeline key-value hashicorp-vault


    【解决方案1】:

    Vault CLI 将 JSON 字符串返回到 stdout,因此您可以使用 readJSON step 方法在管道中相应地解析它:

    secretKeyMap = readJSON(text: secret_key)
    

    之后,readJSON 方法返回从 JSON 字符串转换而来的 Map 类型,因此您也可以使用正确的语法进行相应的解析:

    secretKeyMap['password'] // admin
    secretKeyMap['username'] // admin
    secretKeyMap.password // admin
    secretKeyMap.username // admin
    

    【讨论】:

      猜你喜欢
      • 2020-11-28
      • 2012-07-13
      • 2014-10-21
      • 2021-12-23
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      相关资源
      最近更新 更多