1

Visual Studio Online にリンクされている Azure の VM にビルド エージェントをセットアップしました。

次に、New-AzureResourceGroup を実行しようとするスクリプトを実行する Azure Powershell ビルド ステップがあります。

これにより、次の結果が得られます。

New-AzureResourceGroup : 無許可

113 ##[error]At C:\BuildAgents\agent\_work\[...]\Deploy-AzureResourceGroup.ps1:47 char:1
114 ##[error]+ New-AzureResourceGroup -Name $ResourceGroupName -Location $ResourceGroupLocation ...
115 ##[error]+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
116 ##[error]+ CategoryInfo          : CloseError: (:) [New-AzureResourceGroup], CloudException
117 ##[error]+ FullyQualifiedErrorId : Microsoft.Azure.Commands.Resources.NewAzureResourceGroupCommand

これらのスクリプトを問題なくローカルで実行できます。

スクリプトで発行設定ファイルをインポートしようとしましたが、New-AzureResourceGroup はこの方法での認証を許可されていないようです。

(ネットワーク サービスではなく) ローカル ユーザー アカウントでビルド エージェントをサービスとして実行します。

ビルド エージェントが New-AzureResourceGroup を実行できるようにする方法を知っている人はいますか?

リソース グループを含め、Azure で必要なすべての設定と管理を含む、完全な継続的デプロイを実行できることを願っています。

アップデート

以下の記事によると、

「この方法 [設定ファイルの公開] を使用して接続する場合、Azure Service Management (または ASM モード) コマンドのみを使用できます。」

https://azure.microsoft.com/en-us/documentation/articles/xplat-cli-connect/

これは Azure PowerShell にも当てはまると思います。

では、アカウント ベースの認証を使用せずに Azure でリソースを管理する方法は本当にないのでしょうか?

アップデート

不足している部分を提供してくれた @bmoore-msft に感謝します。実際のアカウントで実行するビルドをセットアップするために必要なリンクのスクリーン ショットをもう 1 つ追加します。

以下の回答で規定されているようにクリックした後、ここをクリックしてください。

4

2 に答える 2

3

Azure Resource Manager では、証明書ではなく Azure Active Directory 認証を使用する必要があります。これは、cli、PowerShell、REST API などに適用されます。

VSO には、Azure PowerShell のビルド タスクがあります。そのタスクを使用するときは、「接続」またはサブスクリプションを指定してタスクを実行します...そのため、資格情報を VSO に保存します。通常の PowerShell タスクを使用することもできますが、その場合、資格情報を自分で保護する必要があります。

最後に、VSO でアカウント接続をセットアップするときは、orgID である必要があります。MSA はサポートされていません (PowerShell の制限)。サービス プリンシパルのサポートが予定されています。

VSO ビルド定義

于 2015-09-02T21:56:49.423 に答える
1

また、VSO で Azure Resource Manager を使用する際にも多くの問題がありました。Azure サブスクリプションで Visual Studio Online からデプロイするのに十分な権限を持つサービス プリンシパル アカウントを作成することで、私の問題に対する有効な解決策を最終的に見つけました。

サービス プリンシパル アカウントを作成するために、David Ebbo の次のブログ記事を使用しました: http://blog.davidebbo.com/2014/12/azure-service-principal.html

VSO では、「Azure PowerShell」ステップを削除し、「PowerShell」ステップに置き換えました。PowerShell スクリプトでは、まずサービス プリンシパル アカウントにログインし、Azure Resource Manager を使用してアプリケーションをデプロイします。

私の調査結果の詳細については、MSDN フォーラム ( https://social.msdn.microsoft.com/Forums/azure/en-US/d5a940e0-ed83-46ff-9efc-045fb9522c5b/ad-auth-from-azure ) を参照してください。 -powershell-in-vso-fails-with-accessingwsmetadataexchangefailed?forum=azurescripting

于 2015-09-24T15:13:10.807 に答える