我可以通过ARM模板运行powershell脚本吗?

时间:2017-12-14 06:00:24

标签: azure arm-template

我想运行powershell脚本来在Azure AD中创建用户和用户组。是否可以在ARM模板中调用ps脚本?

2 个答案:

答案 0 :(得分:5)

更新: 现在可以使用新功能进行某些操作了(仍在预览中)

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可能应该检查资源是否已到位并已正确配置。

答案 1 :(得分:2)

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

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

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