【问题标题】:How do I use a jenkins declarative pipeline credential and convert to a powershell credential?如何使用 jenkins 声明性管道凭据并转换为 powershell 凭据?
【发布时间】:2017-07-25 08:55:14
【问题描述】:

如何使用 jenkins 声明式管道凭据并转换为 powershell 凭据?

使用

 environment {
       APPLICATION_SERVER_CRED = credentials('app-cred')
 }

仅仅使用转换后的安全字符串似乎不能很好地工作,因为 PSCredential 构造函数需要不同的类型:String 和 SecureString

PSCredential(String, SecureString)

如何获取 jenkins 管道创建的环境变量

$ENV:APPLICATION_SERVER_CRED_USR
$ENV:APPLICATION_SERVER_CRED_PSW

并将它们转换为变量,然后我可以将其传递给 System.Management.Automation.PSCredential 的 PSCredential 构造函数?

powershell脚本内,运行时两个环境变量的类型

($ENV:APPLICATION_SERVER_CRED_USR).GetType()

System.String

这不会直接起作用,因为构造函数需要不同的类型。

如果 jenkins 没有将用户名转换为安全文本,我不会遇到这个问题,因为我会将密码转换为安全字符串并满足 PSCredential 的构造函数参数。但由于它们是安全文本(并键入 System.String),我不能。

如何转换变量以创建 PSCredential?

【问题讨论】:

  • 也许我可以将屏蔽文本转换为安全字符串?

标签: powershell jenkins groovy continuous-integration continuous-deployment


【解决方案1】:

哦,好吧,是的,这比我想象的要容易。我猜蒙面文本实际上只是掩盖了它在 UI 中的可见性。这行得通。

$backendServerPass = ConvertTo-SecureString $ENV:APPLICATION_SERVER_CRED_PSW -AsPlainText -Force
$backendServerCredential = New-Object System.Management.Automation.PSCredential ($ENV:APPLICATION_SERVER_CRED_USR, $backendServerPass) -Verbose

【讨论】:

  • 我无法让它工作:我一直得到掩码值 **** 而不是实际值。所以我的新信誉就像:``` [Pipeline] echo UserName Password -------- -------- **** System.Security.SecureString ```
猜你喜欢
  • 2019-09-22
  • 2018-04-16
  • 2020-05-03
  • 1970-01-01
  • 1970-01-01
  • 2018-11-10
  • 2022-08-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多