【问题标题】:ARM Template - Passing parameters with Powershell AND use Secret valuesARM 模板 - 使用 Powershell 传递参数并使用 Secret 值
【发布时间】:2020-05-07 13:43:10
【问题描述】:

我很确定我知道答案是否定的,但我的方案有多种要求: 我正在设计一个 ARM 模板以共享给一组系统管理员,以便将 Win 服务器部署到 Azure。

我在它周围包装了一个 PowerShell 函数,所以它可以像这样使用

New-AzureVM -vmName "test01" -OsVersion "Server 2019" 等 这将构建值并将其传递给 New-AzResourceGroupDeployment

我还需要传递秘密值以将 VM 加入域并在 VM 上使用本地管理员帐户。我相信这需要一个参数文件。

但是,如果使用参数文件,我似乎找不到在使用远程存储库时也通过 PowerShell 传递参数的方法。

我目前正在测试在 Azure 容器 blob 中使用模板并使用 -templateURI 和 -templateParameterURI 引用 SAS 令牌。但是您不能在主模板中拥有参数文件和参数。有没有办法做到这一点?

我想要实现的所有目标都可以使用本地存储库 - 所以在我放弃并只是向系统管理员展示如何使用 Git 在本地克隆远程存储库之前 - 我想我会联系社区。​​p >

【问题讨论】:

    标签: azure powershell azure-resource-manager arm-template infrastructure-as-code


    【解决方案1】:

    我还需要传递秘密值以将 VM 加入域 并在 VM 上使用本地管理员帐户。我相信这需要一个 参数文件。

    你为什么这么相信?您可以使用 powershell 传递它们,但是您必须使用 powershell 传递所有参数(或对未传递的参数使用默认值)

    但是,如果使用参数文件,我似乎无法找到一种方法 使用远程仓库时也可以通过 PowerShell 传递参数。

    这是真的

    这样你就可以在本地下载文件,使用本地文件并用powershell覆盖一些参数

    【讨论】:

    • 你说得对,我可能需要在本地下载文件。在函数中,我必须生成 Storage Account Keys >Storage Account context > Get-AzStorageBlobContext -dest 并从那里开始工作。我会先给它!
    • 感谢 @4c74356b41 让 powershell 功能为 Context 生成存储帐户密钥,然后将模板和参数文件存储在本地以进行完美部署
    【解决方案2】:

    我过去曾使用过密钥保管库。将密码存储在 keyvault 中,并在需要将其传递给模板时将其调用到 powershell 中的参数中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-26
      • 2019-09-12
      • 2020-05-21
      • 2021-03-14
      相关资源
      最近更新 更多