【问题标题】:Get the list of user variables from Octopus从 Octopus 获取用户变量列表
【发布时间】:2015-08-10 15:56:12
【问题描述】:

我们有 Octopus-2.0。 我们将服务凭证(它们是每台机器)存储在 octopus 用户变量中。 我还需要在 SQL Server 中创建这些登录。

例如服务登录名“machine1_service1”存储为变量名。该登录的密码存储在章鱼的变量值列下。

到目前为止,我知道对于来自章鱼的任何变量值,我们都需要提供准确的变量名称。但在这种情况下,我实际上需要获取所有这些变量的列表。

有没有办法做到这一点?

【问题讨论】:

  • 您可以过滤掉任何不以Octopusenv:开头的变量

标签: octopus-deploy


【解决方案1】:

是的。

Octopus 变量可从可枚举的字典对象中访问。如果您遵循命名约定,则可以使用 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"
}

希望这会有所帮助。

【讨论】:

  • 正如您已经提到的,如果在设置名称时使用了命名约定,则此代码很好,但在我们的例子中,命名约定不包括名称中的任何固定字符串。但你的建议很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-13
  • 1970-01-01
  • 2015-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多