2015-05-14 2 views
1

Я написал набор сценариев Powershell, которые могут построить мою инфраструктуру IAAS с помощью Azure Resource Manager. Все эти сценарии предназначены для запуска неинтерактивной из непрерывной системы интеграции, которую мы используем. В сценариях Powershell перед вызовом команды, такой как New-AzureResourceGroup, я сначала проверяю, чтобы машина, запускающая сценарий, была аутентифицирована для Azure, запустив Get-AzureSubscription и Get-AzureAccount. Если он обнаружит, что он не аутентифицирован, он будет запускать ряд командлетов, таких как Import-AzurePublishSettingsFile, Select-AzureSubscription, Add-AzureAccount и т. Д.Учетная запись Azure будет таймаутом, и я не могу повторно аутентифицироваться в Powershell

Это работает отлично в течение большей части времени, и я могу каждый раз изменять подписки и учетные данные, и сценарий будет замечать это изменение, а также указывать правильную подписку и повторно аутентифицироваться по мере необходимости. Однако, как только сеанс учетной записи Azure истечет (я думаю, что это занимает 12 часов), ни одно из вышеперечисленных действий не будет работать для повторной аутентификации. Если я запустил что-то вроде New-AzureResourceGroup, пока он находится в этом состоянии, я получу сообщение «Несанкционированный».

Как только это произойдет, единственное, что будет исправлено, - это запустить вручную Add-AzureAccount и вручную ввести мои учетные данные. Как только это будет сделано, мои скрипты будут работать нормально до следующего таймаута.

Я читал, что импорт файла настроек публикации в одиночку должен работать для этого сценария, но повторный импорт файла также не работает. Кто-нибудь еще смог аутентифицировать Azure из сценария Powershell после таймаута?

+0

Оглядываясь немного, я нашел эту статью: [link] (http://azure.microsoft.com/en-in/documentation/articles/powershell-install-configure) В ней говорится: _The cmdlets в модуле AzureResourceManager требуется метод Azure AD (Add-AzureAccount). Эти командлеты не поддерживают файлы настроек публикации. Итак, режим AzureResourceManager имеет несколько иной механизм аутентификации, чем режим AzureServiceManagement. Это имеет смысл, так как многие другие агенты Azure продолжают работать, а New-AzureResourceGroup этого не делает. Возможно, мне понадобится рассказать об этом Microsoft. – Focker

ответ

0

Я понял это, и это была моя собственная глупая ошибка. У нашей компании есть несколько подписей Azure, и в попытке не входить в систему и выходить из подписки все время, я настраиваю свою собственную учетную запись Azure, чтобы быть со-администратором на всех из них. К сожалению для меня, я создал две учетные записи AzureAutomation ... один под моей учетной записью Azure и один под учетной записью владельца подписки. Это привело к двум счетам, которые были очень похожи, но немного отличается:

[email protected] [email protected]

Одна была установка в качестве администратора по подписке, а другой не было , Не-админ был тем, который я использовал в моем сценарии Powershell, поэтому сообщение Unauthorized было полностью действительным.