2

我有大量 Azure Powershell 部署脚本,这些脚本在构建完成后由构建服务器触发,这些脚本运行良好 - 我使用 Import-AzurePublishSettingsFile(安全地存储在本地)在无人值守的情况下登录 Azure。

我现在需要扩展这些以包括对 Sql Azure 服务器、弹性池和数据库的管理。

但是,这些是Azure 资源管理器 cmdlet的一部分,它们具有不同的身份验证方法。

我找到了这些文章:

但似乎都要求您在此过程的某个阶段输入您的凭据。上面的第二个链接明确指出:

AzureResourceManager 模块需要 Add-AzureAccount。发布设置文件是不够的。

我已经尝试(只是为了看看会发生什么)切换到资源管理器,Switch-AzureMode -Name AzureResourceManager然后只执行其中一个 cmdlet,例如,Get-AzureResourceGroup -Name "blah"但我只是得到一个错误

Get-AzureResourceGroup:AuthenticationFailed:身份验证失败。“授权”标头不存在或以无效格式提供。

我很高兴通过门户手动设置一次 AD 应用程序,然后为我的脚本提供相关的应用程序 ID 或所需的任何内容。我只需要它无人看管,以便我的构建可以部署!

谁能告诉我如何制作无人参与的脚本以通过 Powershell 使用这些 Azure 资源管理器 cmdlet?

4

1 回答 1

1

这篇文章提供了如何做到这一点的完整细节。基本上,您使用 AD 用户的用户名和密码嵌入您的 powershell 脚本。

但请注意,如果您像我一样希望结合调用 AzureResourceManagerAzureServiceManagement 模式(使用Switch-AzureMode),那么您必须使用Add-AzureAccount -Credential <credentials>Remove-AzureAccount -Name <username>否则某些 AzureServiceManagement 模式 cmdlet 将停止工作。

于 2015-07-13T15:10:54.673 回答