【问题标题】:Can i run powershell scripts through ARM Template?我可以通过 ARM 模板运行 powershell 脚本吗?
【发布时间】:2017-12-14 06:00:24
【问题描述】:

我想运行 powershell 脚本在 Azure AD 中创建用户和用户组。 ARM Template可以调用ps脚本吗?

【问题讨论】:

  • 也许你可以使用Azure Custom Script Extension
  • 但这是用于在 Azure VM 上运行脚本。我需要运行一个 powershell 脚本来创建用户。
  • 是的,在执行脚本时,它需要一个主机。因此,Azure ARM 模板无法直接执行此操作。
  • 你需要在你的虚拟机上安装 Azure AD Power Shell,然后你才能执行你的脚本。
  • 好的。那么这仅适用于 Windows VM 还是 Linux VM 也可以?

标签: azure arm-template


【解决方案1】:

更新: 现在可以使用新功能进行一些操作(仍处于预览状态)

https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/deployment-script-template

在模板中使用部署脚本(预览版)

了解如何在 Azure 资源模板中使用部署脚本。和 一种名为 Microsoft.Resources/deploymentScripts 的新资源类型, 用户可以在模板部署中执行部署脚本和 审查执行结果。这些脚本可用于执行 自定义步骤,例如:

  • 将用户添加到目录
  • 创建应用注册
  • 执行数据平面操作,例如复制 blob 或种子数据库
  • 查找并验证许可证密钥
  • 创建自签名证书
  • 在 Azure AD 中创建对象
  • 从自定义系统中查找 IP 地址块

部署脚本的好处:

  • 易于编码、使用和调试。您可以在自己喜欢的开发环境中开发部署脚本。脚本可以嵌入 模板或外部脚本文件中。
  • 您可以指定脚本语言和平台。目前,只有 Linux 环境中的 Azure PowerShell 部署脚本是 支持。
  • 允许指定用于执行脚本的身份。目前,只有 * * Azure 用户分配的托管标识是 支持。
  • 允许将命令行参数传递给脚本。
  • 可以指定脚本输出并将它们传回部署。

请记住,ARM 模板应该是幂等的。您应该编写可以多次执行的代码,即使在您的代码已经执行过的环境中也是如此。 例如,如果您要配置设置或创建资源,您的 powershell 可能应该检查资源是否已经到位并正确配置。

【讨论】:

    【解决方案2】:

    不,Azure ARM 无法直接执行脚本。执行脚本需要宿主,Azure模板不提供宿主。

    一种解决方案,您可以选择Azure Custom Script Extension

    自定义脚本扩展在 Azure 虚拟机上下载和执行脚本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多