Получение имен баз данных из SQLAzure с помощью powershell в azure devops

#powershell #azure-devops

#powershell #azure-devops

Вопрос:

Мне нужно перечислить все имена баз данных определенного сервера в Azure.

 $databases = Get-AzSqlDatabase -ServerName servername -ResourceGroupName resourcegroupname
foreach($dbs in $databases)
{
    $dbs.DatabaseName
}
 

этот скрипт хорошо работает при запуске из локального.

Мой вопрос в том, как запустить это из версии Azure DevOps с помощью задачи powershell?

Ответ №1:

Вы должны использовать задачу Azure-Powershell.

Таким образом, конвейер может подключаться к соответствующей подписке Azure, точно так же, как вы подключились к подписке вручную из Powershell

Подробные сведения о задаче Azure Powershell: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-powershell?view=azure-devops

введите описание изображения здесь

введите описание изображения здесь

Но мне интересно, что вы хотите сделать со списком баз данных. Здесь вы рискуете, но вы, вероятно, хотели бы, чтобы результат был снова запущен в производство. В этом случае, пожалуйста, проверьте

Комментарии:

1. Привет, Тюдор. Я попробовал задачу Azure Powershell, назначил подключение к службе подписки, но выдал сообщение об ошибке «Термин ‘Get-AzSqlDatabase’ не распознается как имя командлета, функции …». Я установил для него версию 3, потому что версия 5 выдает мне «Не удалось найти модули: ‘Az. Учетные записи с версией: «. »

2. какой агент вы используете? вы размещаете свой собственный агент?

3. если вы размещаете свой собственный агент, вам необходимо установить модуль Az Powershell на агенте docs.microsoft.com/en-us/powershell/azure /…

4. Да, используя мой собственный. Установка Az приводит к тому, что этот модуль Az не установлен. Одновременная установка модулей AzureRM и Az не поддерживается «»

5. вы можете либо: — удалить AzureRM и установить только Az — install-module Az -AllowClobber, а затем включить AzureRM Alaises: docs.microsoft.com/en-us/powershell/module/az.accounts / … В идеале вы хотели бы иметь только модуль AZ. У меня есть как AzureRM, так и AZ, работающие бок о бок с включенными псевдонимами ARM. Однако это рискованно, и когда MS вносит критические изменения в AZ (например, недавнее секретное извлечение KV), у вас проблемы