1

J'ai un agent de construction configuré sur une machine virtuelle dans Azure, qui est liée à Visual Studio Online. J'ai ensuite une étape de construction Azure Powershell qui exécute un script qui tente d'exécuter New-AzureResourceGroup.New-AzureResourceGroup non autorisé dans l'agent de construction VSO

Ce résultat suivant:

Nouveau-AzureResourceGroup: Non autorisé

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 

je peux exécuter ces scripts localement sans problème.

J'ai essayé d'importer un fichier de paramètres de publication dans le script, mais il semble que l'authentification New-AzureResourceGroup ne soit pas autorisée de cette façon.

Je lance l'agent de construction en tant que service sous un compte d'utilisateur local (pas de service réseau).

Est-ce que quelqu'un sait comment autoriser l'agent de construction à exécuter New-AzureResourceGroup?

J'espère pouvoir effectuer un déploiement continu complet, y compris la configuration et la gestion de tout ce qui est nécessaire dans Azure, y compris les groupes de ressources.

MISE À JOUR

Selon l'article ci-dessous:

« Si vous vous connectez en utilisant cette méthode [paramètres de publication fichier], vous ne pouvez utiliser la gestion des services Azure (ou le mode ASM) commandes. "

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

Je suppose que cela vaut pour Azure powershell ainsi. Donc, n'y a-t-il vraiment aucun moyen de gérer les ressources en azur sans utiliser l'authentification basée sur le compte?

MISE À JOUR

Merci à @ bmoore-msft pour fournir la pièce manquante. Je vais juste ajouter une autre capture d'écran du lien que je devais trouver pour configurer le build à exécuter sous un compte réel.

After clicking as prescribed in the answer below, click here:

+0

Lorsque vous créez le script PowerShell Azure vous essayez de définir l'Abonnement Azure dans le script PowerShell? – Fabien

+0

Oui. Les scripts étaient bien, y compris en spécifiant l'abonnement. La seule chose qui manquait était de savoir comment configurer l'authentification de l'agent de construction en tant que compte plutôt que d'utiliser un certificat. – CrudMonkey

Répondre

3

Dans Azure Resource Manager vous ne devez utiliser Azure authentification Active Directory, pas certs. Cela s'applique donc à cli, à PowerShell, aux API REST, etc.

Dans VSO, il existe une tâche de génération pour Azure PowerShell. Lorsque vous utilisez cette tâche, vous spécifiez une «connexion» ou un abonnement pour exécuter la tâche sous ... alors vous enregistrez les clés dans VSO. Vous pouvez utiliser une tâche PowerShell régulière, mais vous devrez sécuriser vous-même les fichiers.

Enfin, lorsque vous configurez la connexion de compte dans VSO, doit être être un orgID, les MSA ne sont pas pris en charge (limitation PowerShell). Le service Principal Support arrive.

VSO Build Def

+0

Merci! Avez-vous une idée de la raison pour laquelle, lors de la configuration sous un orgID, la sortie de la construction "live" a éclaté? Maintenant, j'ai soudainement besoin d'attendre la fin de la construction pour voir ce qui se passe. – CrudMonkey

+0

Juste pour m'assurer que je comprends - quand vous exécutez la tâche de construction d'Azure PowerShell, vous ne voyez pas la sortie du manuscrit dans la fenêtre de sortie de construction? Est-ce la question? –

+0

Oui. Dans la page de construction VSO, après avoir cliqué sur "Queue new build", je verrais normalement le script sortir pendant que la construction est en cours d'exécution. Après avoir configuré l'étape de construction avec un compte, la sortie est vide, et j'ai besoin de télécharger le journal pour voir ce qui s'est passé. – CrudMonkey

1

J'ai aussi eu beaucoup de difficultés à utiliser le gestionnaire de ressources Azure avec VSO. J'ai finalement trouvé une solution de travail à mon problème en créant un compte Service Principal avec suffisamment de droits sur l'abonnement Azure pour déployer à partir de Visual Studio Online.

J'ai utilisé ce billet de blog de David Ebbo pour créer le compte de service principal: http://blog.davidebbo.com/2014/12/azure-service-principal.html

En VSO j'ai enlevé l'étape "Azure PowerShell" et l'a remplacée par une étape "PowerShell". Dans le script PowerShell, je commence par me connecter au compte Service Principal, puis déploie mes applications à l'aide d'Azure Resource Manager.

Plus de détails de mes résultats se trouvent sur le forum 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