我有大量 Azure Powershell 部署脚本,这些脚本在构建完成后由构建服务器触发,这些脚本运行良好 - 我使用 Import-AzurePublishSettingsFile(安全地存储在本地)在无人值守的情况下登录 Azure。
我现在需要扩展这些以包括对 Sql Azure 服务器、弹性池和数据库的管理。
但是,这些是Azure 资源管理器 cmdlet的一部分,它们具有不同的身份验证方法。
我找到了这些文章:
- 使用 Azure 资源管理器对服务主体进行身份验证
- 将 Azure PowerShell 与 Azure 资源管理器结合使用
- 使用 Windows Azure Active Directory 验证管理库)
但似乎都要求您在此过程的某个阶段输入您的凭据。上面的第二个链接明确指出:
AzureResourceManager 模块需要 Add-AzureAccount。发布设置文件是不够的。
我已经尝试(只是为了看看会发生什么)切换到资源管理器,Switch-AzureMode -Name AzureResourceManager
然后只执行其中一个 cmdlet,例如,Get-AzureResourceGroup -Name "blah"
但我只是得到一个错误
Get-AzureResourceGroup:AuthenticationFailed:身份验证失败。“授权”标头不存在或以无效格式提供。
我很高兴通过门户手动设置一次 AD 应用程序,然后为我的脚本提供相关的应用程序 ID 或所需的任何内容。我只需要它无人看管,以便我的构建可以部署!
谁能告诉我如何制作无人参与的脚本以通过 Powershell 使用这些 Azure 资源管理器 cmdlet?