Поделиться через


Использование базы данных SQL Azure с Azure DevOps Server

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

Выполните действия, описанные в этой статье, чтобы настроить Azure DevOps Server с База данных SQL Azure. Эта топология содержит несколько дополнительных шагов по сравнению с использованием локального СЕРВЕРА SQL Server.

Требования

  • База данных SQL Azure можно использовать только с Azure DevOps Server 2019 и более поздними версиями.
  • Необходимо установить сервер Azure DevOps на виртуальной машине Azure.
  • Виртуальная машина должна иметь управляемое системой удостоверение, которое используется для проверки подлинности в базе данных SQL Azure.
  • Виртуальная машина должна быть присоединена к домену, но не рабочей группе.
  • Базы данных SQL Azure должны быть отдельными базами данных. Управляемые экземпляры и эластичные пулы поддерживаются в Azure DevOps Server 2022 и более поздней версии.

Поддерживаются все SKU общего назначения и Premium. Поддерживаются также артикулы S3 и выше. Базовые SKU и SKU уровня "Стандартный S2" и ниже не поддерживаются. Конфигурации Azure DevOps Server, использующие База данных SQL Azure, не поддерживают старые службы SQL Server Reporting Services с функциями отчетов SQL Server Analysis Services. Вместо этого можно использовать Azure DevOps Analytics.

Обновление до Azure DevOps Server поддерживается только с Team Foundation Server 2015 и более поздней версии при использовании База данных SQL Azure. База данных SQL Azure не поддерживает зашифрованные хранимые процедуры.

Настроить базу данных SQL Azure

  1. Настройте управляемую идентификацию на виртуальных машинах. В настоящее время мы поддерживаем только удостоверения личности, управляемые системой.

    Конфигурацию можно запустить с помощью всех стандартных механизмов, включая следующие:

  2. Чтобы настроить новый экземпляр Azure DevOps Server, создайте две базы данных SQL Azure:

    • AzureDevOps_Configuration

    • AzureDevOps_DefaultCollection

      Примечание.

      Этот шаг можно пропустить, если вы используете существующие базы данных в следующих случаях:

      • Обновите новую версию Azure DevOps Server.
      • Перенос актуального экземпляра Azure DevOps Server в База данных SQL Azure.
  3. Настройте проверку подлинности Azure Active Directory для сервера База данных SQL Azure. Сделайте себя администратором Active Directory на сервере. Для выполнения оставшихся действий по настройке потребуется разрешение администратора базы данных. Вы можете изменить это разрешение позже.

  4. Включите управляемое удостоверение или удостоверения, если вы используете несколько серверов, для входа в базу данных SQL Azure и предоставления ему соответствующих разрешений. Подключитесь к серверу базы данных с помощью SQL Server Management Studio. Подключитесь с помощью пользователя Azure Active Directory с проверкой подлинности Active Directory . Вы не можете управлять пользователями Azure Active Directory, если вы войдете в базу данных Azure SQL при использовании проверки подлинности SQL.

    a. Выполните следующую команду T-SQL в main базе данных:

    CREATE USER [VMName] FROM EXTERNAL PROVIDER
    ALTER ROLE [dbmanager] ADD MEMBER [VMName]
    

    Замените VMName именем виртуальной машины, управляемое удостоверение которой вы добавляете в базу данных.

    b. Выполните следующую команду T-SQL в конфигурации и всех базах данных коллекции:

    CREATE USER [VMName] FROM EXTERNAL PROVIDER  
    ALTER ROLE [db_owner] ADD MEMBER [VMName]  
    ALTER USER [VMName] WITH DEFAULT_SCHEMA=dbo  
    

Настройка Сервера Azure DevOps

Вернитесь к мастеру настройки Azure DevOps Server. Если вы настроили новый экземпляр, выберите Это новое развертывание Azure DevOps Server. Если вы обновляете или переносите, и у вас имеются данные в базах данных, выберите У меня есть существующие базы данных для использования в этом развертывании Azure DevOps Server.

Когда вы перейдете на страницу Базы данных в мастере настройки, укажите экземпляр сервера базы данных SQL Azure. Как правило, экземпляр сервера находится в виде SQLInstanceName.database.windows.net.

Теперь у вас есть экземпляр Azure DevOps Server, работающий на База данных SQL Azure.

Подключение к базе данных SQL Azure из локальной среды SSMS

Выполните следующие действия, чтобы подключиться к базе данных SQL Azure из локальной среды SSMS:

  1. Экспорт с помощью SQL Server Management Studio с помощью SSMS из виртуальной машины, работающей в той же виртуальной сети, что и частная конечная точка из SQL в хранилище BLOB-объектов или общую папку.

    снимок экрана: выделенные кнопки для выбора приложения уровня данных экспорта.

  2. Вы можете использовать мастер экспорта приложений уровня данных SQL Server Management Studio для экспорта базы данных SQL Azure в BACPAC-файл. Bacpac-файл можно хранить в хранилище BLOB-объектов Azure или общей папке.

    снимок экрана: экран введения для экспорта базы данных.

  3. Щелкните правой кнопкой мыши базу данных SQL на логическом сервере SQL Server из >задачи>мастера экспорта приложений уровня данных.

    Снимок экрана показывает введенное расположение хранилища bacpac-файлов на экране

  4. Выберите Далее.

    снимок экрана: сводка указанных параметров.

  5. Выберите расположение для хранения BACPAC-файла.

    снимок экрана показывает сообщение о завершении операции и страницу результатов.

  6. Выберите Закрыть.

Пакеты DAC находятся здесь: C:\Users\{sample-user-name}\OneDrive - Microsoft\Documents\SQL Server Management Studio\DAC Packages.

Подключение базы данных SQL Azure из Azure DevOps Server 2022

Подключение базы данных SQL Azure из Azure DevOps Server 2022 (локальная среда) включает настройку доступа, обеспечение подключения и использование соответствующих учетных данных. Выполните следующие действия, чтобы подключить базу данных SQL Azure из Azure DevOps Server 2022.

Необходимые условия

Категория Требования
правила брандмауэра Правила брандмауэра базы данных SQL Azure разрешают входящий трафик из IP-адреса или подсети, где размещен сервер Azure DevOps Server. Для этого перейдите на портал Azure >SQL Database Azure>Параметры>Брандмауэры и виртуальные сети>, добавьте новое правило, чтобы разрешить доступ с вашего общедоступного IP-адреса или подсети Azure DevOps Server.
Инструменты — База данных SQL Azure подготовлена и доступна из Azure. Запись имени сервера, имени базы данных и метода проверки подлинности.
— Azure DevOps Server 2022, работающий в локальной среде.
— SSMS, установленный на том же компьютере, где установлен сервер Azure DevOps.

Подключение к базе данных SQL Azure

  1. Получение сведений о подключении к базе данных SQL Azure:

    • Имя сервера: <your-server-name>.database.windows.net
    • Имя базы данных: <your-database-name>
    • Метод проверки подлинности: проверка подлинности SQL Server (имя пользователя или пароль) или проверка подлинности Идентификатора Microsoft Entra.
  2. Подключиться с помощью средства SQL Server Management Studio (SSMS): a. Откройте SQL Server Management Studio на компьютере, на котором установлен Azure DevOps Server. b. Подключение к базе данных SQL Azure: c. Запустите SSMS. d. В окне "Подключение к серверу":

    • Введите имя сервера: <your-server-name>.database.windows.net
    • Выберите проверку подлинности: проверка подлинности SQL Server.
    • Введите имя пользователя и пароль.
    • Выберите Connect. после подключения база данных SQL Azure отображается в обозревателе объектов в SSMS.
  3. Проверить подключение: выполнить запрос или команду в SSMS для проверки подключения:

     SELECT @@VERSION;
    

    Этот запрос возвращает версию SQL Server базы данных SQL Azure, убедив, что подключение выполнено успешно.

  4. Использовать подключение в Azure DevOps Server: после проверки подключения из SSMS можно использовать это подключение в Azure DevOps Server для различных задач, таких как:

    • Автоматизированные развертывания. Настройка конвейеров выпуска в Azure DevOps Server для развертывания изменений базы данных.
    • Миграция данных. Использование скриптов SQL или средств данных, интегрированных с Azure DevOps Server.
    • Непрерывная интеграция. Интеграция изменений базы данных в конвейеры CI/CD.

Совет

  • Быть безопасным: рекомендуется использовать идентификатор Microsoft Entra для более безопасного доступа.
  • Управление учетными данными: Безопасно хранить учетные данные и избегать их хардкодинга в сценариях или конфигурациях.
  • Монитор: Необходимо отслеживать подключения к базе данных и их использование, чтобы обеспечить безопасность и производительность.

Подключите базу данных SQL Azure из Azure DevOps Server 2022 под управлением локальной среды, обеспечивая упрощенное управление базами данных и интеграцию с процессами разработки и развертывания. Настройте конфигурации и меры безопасности на основе политик и требований вашей организации.

Подключайтесь к базе данных Azure SQL в Azure DevOps Server 2022

  1. подготовка сервера Azure DevOps:
    a. Убедитесь, что в локальной среде установлен и настроен Azure DevOps Server 2022.</
    b. Доступ к серверу Azure DevOps с соответствующими разрешениями для создания конвейеров и управления ими.

  2. настройка проекта и репозитория Azure DevOps (если это еще не сделано):
    a. Создайте новый или используйте существующий проект Azure DevOps.
    b. Настройте репозиторий Git или TFVC для хранения определений и скриптов конвейера.

  3. Создание конвейерной линии:
    a. Перейдите в проект Azure DevOps.
    b. Выберите Конвейеры>Конвейеры>Новый конвейер.
    c. Выберите соответствующий шаблон конвейера в зависимости от ваших требований. Для базы данных SQL Azure можно начать с пустого задания или выбрать шаблон, соответствующий потребностям развертывания (например, Azure Pipeline).
    d. Измените файл YAML конвейера или используйте классический редактор для определения этапов и задач конвейера.

  4. Добавление задач для развертывания в базе данных SQL Azure:

    • задача : развертывание базы данных SQL Server: использовать задачу SqlAzureDacpacDeployment для развертывания изменений в базе данных SQL Azure. Пример фрагмента КОДА YAML:

      steps:
      - task: SqlAzureDacpacDeployment@1
        inputs:
          azureSubscription: 'YourServiceConnectionName'  # Use your Azure SQL Database service connection
          serverName: '<your-server-name>.database.windows.net'
          databaseName: '<your-database-name>'
          deployType: 'DacpacTask'
          authenticationType: 'server'
          sqlUsername: '$(sqlUsername)'
          sqlPassword: '$(sqlPassword)'
      

      Замените <your-server-name>, <your-database-name>, $(sqlUsername)и $(sqlPassword) соответствующими значениями или переменными.

    • задача : SQL-запрос Azure: использовать задачу AzureSqlQuery для выполнения запросов SQL в базе данных SQL Azure. Пример фрагмента КОДА YAML:

      steps:
      - task: AzureSqlQuery@1
       inputs:
         azureSubscription: 'YourServiceConnectionName'  # Use your Azure SQL Database service connection
         serverName: '<your-server-name>.database.windows.net'
         databaseName: '<your-database-name>'
         sqlUsername: '$(sqlUsername)'
         sqlPassword: '$(sqlPassword)'
         sqlQuery: 'SELECT * FROM TableName'
      
  5. безопасное управление учетными данными: использовать переменные Azure DevOps или интеграцию Azure Key Vault для управления конфиденциальными данными, такими как учетные данные SQL Server (sqlUsername и sqlPassword).

  6. Запуск и выполнение конвейера :

    • Сохраните и зафиксируйте изменения конвейера.
    • Активируйте конвейер вручную или настройте триггеры (например, фиксация кода, расписание) в соответствии с стратегией развертывания.
  7. Мониторинг выполнения конвейера:

    • Мониторинг выполнения конвейерных процессов в Azure DevOps для успешного развертывания в базе данных Azure SQL.
    • Просмотрите журналы и выходные данные для устранения неполадок во время развертывания.

Совет

  • Интеграция с потоками выпуска: Интегрировать ваш конвейер сборки с потоками выпуска для более сложных сценариев развертывания и подтверждения.
  • Внести добавочные изменения в базу данных: Использовать такие средства, как SQL Server Data Tools (SSDT) или миграцию для управления добавочными изменениями в схеме базы данных.
  • Использовать управление версиями: сохранить скрипты SQL и изменения базы данных под управлением версиями для отслеживания изменений и обеспечения воспроизводимости.

Настройте конфигурации и задачи на основе конкретных потребностей развертывания и требований организации.

Создание резервной копии SQL Server

Создание резервного копирования SQL Server для Azure DevOps Server 2022 с помощью консоли администрирования сервера Azure DevOps server включает настройку параметров резервного копирования и планирование регулярных резервных копий. Выполните следующие действия, чтобы создать резервную копию SQL Server.

Предварительные требования для резервного копирования

Категория Требования
Доступ администратор доступ к серверу, на котором установлен сервер Azure DevOps.
разрешения Разрешение на настройку резервных копий и доступ к SQL Server Management Studio.

Создание резервного копирования

  1. Откройте консоль администрирования Azure DevOps Server на сервере с установленной Azure DevOps Server и выберите уровень приложений>запланированные резервные копии>создание запланированных резервных копий.

    снимок экрана: кнопки выбора в консоли администрирования для создания запланированной резервной копии.

  2. Введите путь к резервному копированию сети, затем выберите Далее.

    Снимок экрана показывает введенный путь к резервной копии сети.

  3. Выберите желаемые оповещения электронной почты, а затем нажмите Далее.

    снимок экрана: выделена кнопка

  4. Выберите расписание резервного копирования в соответствии с вашими требованиями, а затем выберите Далее.

    снимок экрана: выбрано расписание резервного копирования и выделена кнопка

  5. Подтвердите параметры конфигурации и выберите Проверить.

    снимок экрана: выделенная кнопка

    Мастер резервного копирования проверяет, существует ли путь резервного копирования и является сетевым путем.

    снимок экрана: проверка готовности.

Устранение ошибок

В случае сбоя проверки готовности ознакомьтесь со следующими сведениями, чтобы помочь в устранении неполадок.

Ошибка: доступ к учетной записи службы

Снимок экрана показывает ошибку среды во время проверки готовности.

сообщение об ошибке:TF401009: The Azure DevOps service account NT AUTHORITY\LOCAL SERVICE cannot access network shares. Change to an account that can access the backup path. эта ошибка возникает, когда учетная запись службы — NT AUTHORITY\LOCAL SERVICE. снимок экрана: сводка по уровню приложений для локальной службы NT Authority.

Решение :

  1. Создайте локального пользователя с необходимыми разрешениями на доступ. снимок экрана: только что созданный локальный пользователь и доступ.
  2. В консоли администрирования сервера Azure DevOps перейдите на экран уровня приложений и выберите изменить учетную запись.
  3. Измените учетную запись службы на только что созданную локальную учетную запись пользователя. Скриншот показывает новые членства в группах пользователей.
  4. Повторите процесс резервного копирования сначала для успешного создания резервной копии, а затем повторного запуска проверок готовности. снимок экрана: все проверки успешно выполнены.

Успешная конфигурация резервного копирования:На снимке экрана показана успешная конфигурация резервного копирования.

журналы запланированного резервного копирования:снимок экрана: файлы запланированных журналов резервного копирования.

Запланированные резервные копии в консоли администрирования:Скриншот показывает экран консоли администрирования с запланированными резервными копиями.

Ошибка: файл журнала

Скриншот показывает выделенную ссылку, чтобы выполнить полное резервное копирование сейчас.

Пример расположения файла журнала:C:\ProgramData\Microsoft\Azure DevOps\Server Configuration\Logs\TFS_Scheduled Backups_0627_192409.logПример сообщения об ошибке файла журнала:[7/1/2024 7:28:37 AM] [Error]``Exception Message: The backup of the file or filegroup "LeadingKey" is not permitted because it is not online. Container state: "Offline" (7). Restore status: 0. BACKUP can be performed by using the FILEGROUP or FILE clauses to restrict the selection to include only online data.``BACKUP DATABASE is terminating abnormally. (type SqlException)

Решение :

  • Перед выполнением резервного копирования убедитесь, что все файловые группы находятся в сети.

    пример LeadingKeyOffline:Снимок экрана показывает свойства базы данных и пример файла базы данных LeadingKey.

  • Протестируйте процесс резервного копирования с помощью запросов SQL для выявления и устранения проблем с определенными файловыми группами.