我们有Octopus-2.0。 我们在octopus用户变量中存储了服务凭证(它们是每台机器)。 我还需要在SQL服务器中创建这些登录。
示例服务登录名“machine1_service1”存储为变量名称。该登录的密码和密码存储在章鱼的变量值列中。
到目前为止,我知道对于章鱼中的任何变量值,我们需要提供精确的变量名称。但在这种情况下,我实际上需要得到所有这些变量的列表。
有没有办法实现这个目标?
答案 0 :(得分:7)
是
可以从可枚举的字典对象访问八达通变量。如果您遵循命名约定,则可以使用PowerShell查询字典,如下所示。这可以在自定义步骤中调用,也可以在您可以编写自己的PowerShell的地方调用,例如 .nuget 文件中的PostDeploy.ps1脚本
假设变量是这样定义的
你可以使用这个powershell来获取它们并枚举它们
# Get service accounts
$serviceAccounts = $OctopusParameters.keys | ? {$_ -like "service-*"}
write-host "Accounts found:" $serviceAccounts.count
foreach($account in $serviceAccounts)
{
write-host "Account: $account"
$password = $OctopusParameters[$account]
write-host "Password: $password"
}
希望这有帮助。