CruiseControl.Net tfs集成需要具有相当高权限的用户的用户名和密码才能存储在配置文件中。我不是很喜欢这个,并试图想办法安全地存储密码,同时保持完全自动化的构建。
Powershell使用ConvertTo-SecureString
和ConvertFrom-SecureString
命令对此有很好的支持,这样的事情可以处理加密:
"password-string" | ConvertTo-SecureString -AsPlainText -Force | Out-File pwd.dat
这可以处理解密:
$user = "mydomain\myuser"
$pwd = Get-Content pwd.dat | ConvertFrom-SecureString
$cred = New-Object System.Management.Automation.PSCredential($user, $pwd)
CruiseControl.Net有一个<powershell>
任务,可用于运行PowerShell脚本,但我不确定是否可以返回任何内容。我想知道是否有人对如何使用CruiseControl.Net实现安全密码有任何想法?使用Powershell不是必需的,我只是觉得它会很整洁。
答案 0 :(得分:0)
至少找到一种解决方法:如果省略<user>
,<password>
和<domain>
参数,CruiseControl将使用运行该服务的用户的凭据。
更普遍的问题是,是否有可能捕获产量仍有待测试。我想可以使用[system]::SetEnvironmentVariable(name,value)
设置环境变量,但我还没有测试过。