2011-04-28 2 views
1

L'intégration de CruiseControl.Net tfs nécessite un nom d'utilisateur et un mot de passe pour un utilisateur avec des privilèges assez élevés à stocker dans les fichiers de configuration. Je ne suis pas très friand de cela, et j'ai essayé de trouver des moyens pour que le mot de passe soit stocké en toute sécurité tout en maintenant des builds entièrement automatisés.Utilisez Powershell avec CruiseControl.Net pour le stockage sécurisé des mots de passe?

Powershell a un bon support pour cela avec les ConvertTo-SecureString et ConvertFrom-SecureString commandes, et quelque chose comme ceci gérerait le cryptage:

"password-string" | ConvertTo-SecureString -AsPlainText -Force | Out-File pwd.dat 

Et cela pourrait gérer le décryptage:

$user = "mydomain\myuser" 
$pwd = Get-Content pwd.dat | ConvertFrom-SecureString 
$cred = New-Object System.Management.Automation.PSCredential($user, $pwd) 

CruiseControl.Net a une tâche <powershell> qui peut être utilisée pour exécuter des scripts PowerShell, mais je ne sais pas si cela peut être fait pour retourner anyhting. Je me demande si quelqu'un a des idées sur la façon de mettre en œuvre des mots de passe sécurisés avec CruiseControl.Net? Utiliser Powershell n'est pas nécessaire, je pense juste que ce serait bien.

Répondre

0

trouvé une solution au moins: si vous omettez les <user>, <password> et <domain> paramètres, CruiseControl utilisera les informations d'identification pour l'utilisateur exécutant le service.

La question plus générale, qu'il soit possible d'attraper la sortie reste à tester. Je suppose qu'il pourrait être possible de définir une variable d'environnement en utilisant [system]::SetEnvironmentVariable(name,value), mais je n'ai pas testé cela.

Questions connexes