我有一堆Azure Powershell部署脚本,它们在构建完成后由构建服务器触发,完美运行 - 我使用Import-AzurePublishSettingsFile(安全地存储在本地)以无人值守的方式登录Azure。
我现在需要扩展它们以包括对Sql Azure服务器,弹性池和数据库的管理。
然而,这些是具有不同身份验证方法的Azure Resource Manager cmdlets的一部分。
我发现了这些文章:
但似乎要求您在流程的某个阶段输入您的凭据。上面的第二个链接明确指出:
AzureResourceManager模块需要Add-AzureAccount。发布设置文件是不够的。
我尝试过(仅查看会发生什么)使用Switch-AzureMode -Name AzureResourceManager
切换到资源管理器,然后只执行其中一个cmdlet,例如Get-AzureResourceGroup -Name "blah"
,但我只是得到错误
Get-AzureResourceGroup:AuthenticationFailed:身份验证失败。 “授权”标题不存在或以无效格式提供。
我很高兴通过门户手动设置AD应用程序,一次,然后为我的脚本提供相关的应用程序ID或任何所需的内容。我只需要它无人值守,以便我的构建可以部署!
有人能告诉我如何制作无人参与的脚本以通过Powershell使用这些Azure Resource Manager cmdlet吗?
答案 0 :(得分:1)
这篇文章详细介绍了如何做到这一点。基本上,您使用AD用户的用户名和密码嵌入了PowerShell脚本。
但请注意,如果像我一样,您希望将对AzureResourceManager 和 AzureServiceManagement模式的调用(使用<script src="scripts/angular-ui/ui-bootstrap-tpls.js"></script>
<script src="scripts/app/station/editCtrl.js"></script>
)组合在一起,那么您必须使用Switch-AzureMode
并且{ {1}}否则某些AzureServiceManagement模式cmdlet将停止工作。