通过 Azure Powershell 对资源管理器进行无人值守的身份验证
Unattended authentication through Azure Powershell for Resource Manager
我有一大堆 Azure Powershell 部署脚本,这些脚本在构建完成后由构建服务器触发,运行良好 - 我使用 Import-AzurePublishSettingsFile(安全地存储在本地)无人值守登录 Azure。
我现在需要扩展这些以包括 Sql Azure 服务器、弹性池和数据库的管理。
但是,这些是 Azure Resource Manager cmdlets 的一部分,它们具有不同的身份验证方法。
我找到了这些文章:
- Authenticating a Service Principal with Azure Resource Manager
- Using Azure PowerShell with Azure Resource Manager
- Using Windows Azure Active Directory to Authenticate the Management Libraries)
但所有这些似乎都要求您在此过程的某个阶段输入您的凭据。上面的第二个 link 明确指出:
The AzureResourceManager module requires Add-AzureAccount. A Publish Settings file is not sufficient.
我已经尝试(只是想看看会发生什么)使用 Switch-AzureMode -Name AzureResourceManager
切换到资源管理器,然后只执行其中一个 cmdlet,例如 Get-AzureResourceGroup -Name "blah"
但我只收到错误
Get-AzureResourceGroup : AuthenticationFailed: Authentication failed. The 'Authorization' header is not present or provided in an invalid format.
我很高兴通过门户手动设置 AD 应用程序一次,然后为我的脚本提供相关应用程序 ID 或任何所需内容。我只需要它无人值守,这样我的构建就可以部署了!
谁能告诉我如何制作无人值守脚本以通过 Powershell 使用这些 Azure 资源管理器 cmdlet?
此 post 提供了有关如何执行此操作的完整详细信息。基本上,您使用 AD 用户的用户名和密码嵌入您的 powershell 脚本。
但请注意,如果您像我一样希望合并对 AzureResourceManager 和 AzureServiceManagement 模式的调用(使用 Switch-AzureMode
),那么您必须使用 Add-AzureAccount -Credential <credentials>
以及 Remove-AzureAccount -Name <username>
否则某些 AzureServiceManagement 模式 cmdlet 将停止工作。
我有一大堆 Azure Powershell 部署脚本,这些脚本在构建完成后由构建服务器触发,运行良好 - 我使用 Import-AzurePublishSettingsFile(安全地存储在本地)无人值守登录 Azure。
我现在需要扩展这些以包括 Sql Azure 服务器、弹性池和数据库的管理。
但是,这些是 Azure Resource Manager cmdlets 的一部分,它们具有不同的身份验证方法。
我找到了这些文章:
- Authenticating a Service Principal with Azure Resource Manager
- Using Azure PowerShell with Azure Resource Manager
- Using Windows Azure Active Directory to Authenticate the Management Libraries)
但所有这些似乎都要求您在此过程的某个阶段输入您的凭据。上面的第二个 link 明确指出:
The AzureResourceManager module requires Add-AzureAccount. A Publish Settings file is not sufficient.
我已经尝试(只是想看看会发生什么)使用 Switch-AzureMode -Name AzureResourceManager
切换到资源管理器,然后只执行其中一个 cmdlet,例如 Get-AzureResourceGroup -Name "blah"
但我只收到错误
Get-AzureResourceGroup : AuthenticationFailed: Authentication failed. The 'Authorization' header is not present or provided in an invalid format.
我很高兴通过门户手动设置 AD 应用程序一次,然后为我的脚本提供相关应用程序 ID 或任何所需内容。我只需要它无人值守,这样我的构建就可以部署了!
谁能告诉我如何制作无人值守脚本以通过 Powershell 使用这些 Azure 资源管理器 cmdlet?
此 post 提供了有关如何执行此操作的完整详细信息。基本上,您使用 AD 用户的用户名和密码嵌入您的 powershell 脚本。
但请注意,如果您像我一样希望合并对 AzureResourceManager 和 AzureServiceManagement 模式的调用(使用 Switch-AzureMode
),那么您必须使用 Add-AzureAccount -Credential <credentials>
以及 Remove-AzureAccount -Name <username>
否则某些 AzureServiceManagement 模式 cmdlet 将停止工作。