Maven 需要为工作站构建编写相当于密码解密的非Jenkins脚本
在我的Jenkins管道中,我使用Jenkins服务器的gpg2可执行文件来解密Openshift/Kubernetes部署的密码。我想以某种方式在我的工作站上复制它 我们的平台ops团队提供的Jenkins groovy脚本最初处理gpg加密的文件,但作为开发人员,我们发现整个开发过程非常容易出错,并对脚本进行了修改,以从字符串变量而不是文件中解密密码 这就是我在Jenkins上所做的,其中密码短语Maven 需要为工作站构建编写相当于密码解密的非Jenkins脚本,maven,jenkins,groovy,bouncycastle,gnupg,Maven,Jenkins,Groovy,Bouncycastle,Gnupg,在我的Jenkins管道中,我使用Jenkins服务器的gpg2可执行文件来解密Openshift/Kubernetes部署的密码。我想以某种方式在我的工作站上复制它 我们的平台ops团队提供的Jenkins groovy脚本最初处理gpg加密的文件,但作为开发人员,我们发现整个开发过程非常容易出错,并对脚本进行了修改,以从字符串变量而不是文件中解密密码 这就是我在Jenkins上所做的,其中密码短语$pw来自Jenkins凭证: readProperties(file: fil
$pw
来自Jenkins凭证:
readProperties(file: fileIn).each {
key, value -> B: {
def plainText = ''
if (value) {
echo "encrypted $key is [$value]"
plainText = sh(
script: """echo "$value" |
base64 -d -w 0 |
gpg2 --batch --decrypt --passphrase $pw |
base64 -w 0 """,
returnStdout: true
)
}
sh "echo ' $key: $plainText' >> $fileOut"
}
}
棘手的一点是替换sh
命令
我查看了bouncycastle
,但不知道是否有办法只输入一个加密字符串而不是整个文件。我可以将这些值写入文件并进行处理,但我宁愿嚼一口甲虫乐队的歌
我突然想到,可能有一种比gpg
更容易解密字符串的方法,但我还没有找到——主要要求是它可以在Jenkins上实现
我看过,但我希望现在有一个更干净的方法 Jenkins有一个经过加密的凭证存储,也可以在管道中使用,如
with credentials(…)
…也许我误解了你的意图…是的,你误解了-我希望在非Jenkins平台上创建等效的凭证存储,仍然使用groovy。