Udostępnij przez


Używanie usługi Azure SQL Database z usługą Azure DevOps Server

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

Wykonaj kroki opisane w tym artykule, aby skonfigurować program Azure DevOps Server z usługą Azure SQL Database. Ta topologia ma jeszcze kilka kroków w porównaniu z użyciem lokalnego serwera SQL.

Warunki wstępne

Kategoria Wymagania
Wersja usługi Azure DevOps Server Usługi Azure SQL Database można używać tylko z usługą Azure DevOps Server 2019 i nowszymi wersjami.
Środowisko instalacji Usługa Azure DevOps Server zainstalowana na maszynie wirtualnej platformy Azure.
Uwierzytelnianie Maszyna wirtualna ma włączoną tożsamość zarządzaną przez system, która służy do uwierzytelniania w bazie danych Azure SQL Database.
Członkostwo w domenie Maszyna wirtualna jest przyłączona do domeny, ale nie do grupy roboczej.
Typ bazy danych Bazy danych Azure SQL Database to pojedyncze bazy danych. Wystąpienia zarządzane i pule elastyczne są obsługiwane w usłudze Azure DevOps Server 2022 i nowszych wersjach.
reguły firewall Reguły zapory usługi Azure SQL Database zezwalają na połączenia przychodzące z adresu IP lub podsieci, w której jest hostowany serwer Usługi Azure DevOps. W tym celu przejdź do: portalu Azure>Azure SQL Database>Ustawienia>Zapory i sieci wirtualne> i dodaj nową regułę umożliwiającą dostęp z publicznego adresu IP lub podsieci serwera Azure DevOps Server.
Narzędzia — Usługa Azure SQL Database aprowizowana i dostępna z platformy Azure. Rekord nazwy serwera, nazwy bazy danych i metody uwierzytelniania.
— usługa Azure DevOps Server 2022 uruchomiona w środowisku lokalnym.
— program SSMS zainstalowany na tej samej maszynie, na której zainstalowano usługę Azure DevOps Server.

Obsługiwane są wszystkie jednostki SKU ogólnego przeznaczenia i Premium, a także jednostki SKU w warstwie Standard S3 i wyższe. Jednak podstawowe SKU i standardowe SKU S2 nie są obsługiwane.

Konfiguracje usługi Azure DevOps Server korzystające z usługi Azure SQL Database nie obsługują starszych usług SQL Server Reporting Services z funkcjami raportowania usług SQL Server Analysis Services. Zamiast tego możesz użyć usługi Azure DevOps Analytics do raportowania i analizy.

Usługa Azure SQL Database nie obsługuje zaszyfrowanych procedur składowanych.

Konfigurowanie usługi Azure SQL Database

  1. Skonfiguruj tożsamość zarządzaną na maszynach wirtualnych. Obecnie obsługujemy tylko tożsamości zarządzane przez system.

    Konfigurację można uruchomić przy użyciu wszystkich standardowych mechanizmów, w tym:

  2. Aby skonfigurować nowe wystąpienie usługi Azure DevOps Server, utwórz dwie bazy danych Azure SQL Database:

    • AzureDevOps_Konfiguracja
    • AzureDevOps_DefaultCollection
  3. Skonfiguruj uwierzytelnianie Microsoft Entra ID dla serwera Azure SQL Database. Zrób sobie administratora Microsoft Entra na serwerze. Aby wykonać pozostałe kroki konfiguracji, musisz mieć uprawnienia administratora bazy danych. To uprawnienie można zmienić później.

    a. Uruchom następujące polecenie języka T-SQL w głównej bazie danych. Zastąp ciąg VMName nazwą maszyny wirtualnej, której tożsamość zarządzana jest dodawana do bazy danych:

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

    b. Uruchom następujące polecenie języka T-SQL w konfiguracji i wszystkich bazach danych kolekcji:

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

    Baza danych umożliwia teraz maszynie wirtualnej komunikację za pośrednictwem tożsamości zarządzanej.

    Uwaga

    Jeśli wprowadzisz modyfikacje w maszynie wirtualnej Azure, takie jak przywrócenie migawki lub zmiana nazwy maszyny wirtualnej, aby przywrócić łączność, wykonaj następujące kroki:

Konfigurowanie usługi Azure DevOps Server

Wróć do kreatora konfiguracji Azure DevOps Server. Jeśli skonfigurujesz nowe wystąpienie, wybierz opcję To jest nowe wdrożenie usługi Azure DevOps Server. Jeśli uaktualnisz lub zmigrujesz istniejące dane w bazach danych, wybierz pozycję Mam istniejące bazy danych do użycia na potrzeby tego wdrożenia usługi Azure DevOps Server.

Po przejściu do strony Baza danych w kreatorze konfiguracji określ wystąpienie serwera usługi Azure SQL Database. Zazwyczaj wystąpienie serwera ma postać SQLInstanceName.database.windows.net.

Masz teraz wystąpienie usługi Azure DevOps Server uruchomione w oparciu o bazę danych Azure SQL Database.

Nawiązywanie połączenia z bazą danych Azure SQL Database z lokalnego programu SSMS

Wykonaj następujące kroki, aby nawiązać połączenie z bazą danych Azure SQL Database z lokalnego programu SSMS:

  1. Eksportowanie za pośrednictwem programu SQL Server Management Studio przy użyciu programu SSMS z maszyny wirtualnej działającej w tej samej sieci wirtualnej co prywatny punkt końcowy z programu SQL do magazynu obiektów blob/udziału plików.

    Zrzut ekranu przedstawia wyróżnione przyciski wyboru opcji eksportu aplikacji warstwy danych.

  2. Aby wyeksportować bazę danych Azure SQL do pliku .bacpac, możesz użyć Kreatora eksportu aplikacji warstwy danych w SQL Server Management Studio. Plik bacpac można przechowywać w usłudze Azure Blob Storage lub udziale plików.

    Zrzut ekranu przedstawiający ekran wprowadzenia do eksportowania bazy danych.

  3. Wybierz prawym przyciskiem myszy bazę danych SQL na logicznym serwerze SQL z SSMS>Zadania>Eksport aplikacji warstwy danych kreatora.

    Zrzut ekranu przedstawia wprowadzoną lokalizację przechowywania plików bacpac na ekranie Ustawienia eksportu.

  4. Wybierz pozycję Dalej.

    Zrzut ekranu przedstawia podsumowanie określonych ustawień.

  5. Wybierz lokalizację do przechowywania pliku BACPAC.

    Zrzut ekranu przedstawiający pełną stronę komunikatu i wyników operacji.

  6. Wybierz Zamknij.

Pakiety DAC znajdują się tutaj: C:\Users\{sample-user-name}\OneDrive - Microsoft\Documents\SQL Server Management Studio\DAC Packages.

Łączenie usługi Azure SQL Database z usługi Azure DevOps Server 2022

Łączenie usługi Azure SQL Database z usługi Azure DevOps Server 2022 (lokalnie) obejmuje konfigurowanie dostępu, zapewnianie łączności i używanie odpowiednich poświadczeń. Wykonaj następujące kroki, aby połączyć usługę Azure SQL Database z serwera Azure DevOps Server 2022.

Nawiązywanie połączenia z usługą Azure SQL Database

  1. Uzyskaj szczegóły połączenia usługi Azure SQL Database:

    • Nazwa serwera: <your-server-name>.database.windows.net
    • Nazwa bazy danych: <your-database-name>
    • Metoda uwierzytelniania: Uwierzytelnianie programu SQL Server (nazwa użytkownika/hasło) lub uwierzytelnianie identyfikatora Entra firmy Microsoft.
  2. Connect za pomocą programu SQL Server Management Studio (SSMS): a. Otwórz program SQL Server Management Studio na maszynie, na której jest zainstalowany program Azure DevOps Server. b. Nawiązywanie połączenia z usługą Azure SQL Database: c. Uruchom program SSMS. d. W oknie Łączenie z serwerem:

    • Wprowadź nazwę serwera: <your-server-name>.database.windows.net
    • Wybierz pozycję Uwierzytelnianie: Uwierzytelnianie programu SQL Server.
    • Wprowadź nazwę użytkownika i hasło.
    • Wybierz pozycję Połącz. Po nawiązaniu połączenia usługa Azure SQL Database jest wyświetlana w Eksploratorze obiektów w programie SSMS.
  3. Testowanie łączności: Wykonaj zapytanie lub polecenie w programie SSMS:

     SELECT @@VERSION;
    

    To zapytanie zwraca wersję programu SQL Server usługi Azure SQL Database, potwierdzając, że połączenie zakończyło się pomyślnie.

  4. Użyj połączenia w usłudze Azure DevOps Server: Po zweryfikowaniu łączności z programu SSMS możesz użyć tego połączenia w usłudze Azure DevOps Server w celu wykonywania różnych zadań, takich jak:

    • Automatyczne wdrożenia: Konfigurowanie potoków wydania w usłudze Azure DevOps Server w celu wdrożenia zmian bazy danych.
    • Migracja danych: użyj skryptów SQL lub narzędzi do obsługi danych zintegrowanych z usługą Azure DevOps Server.
    • Ciągła integracja: włączanie zmian w bazach danych do potoków CI/CD.

Napiwek

  • Być bezpiecznym: rozważ użycie identyfikatora Entra firmy Microsoft w celu uzyskania bezpieczniejszego dostępu.
  • Zarządzaj poświadczeniami: Bezpieczne przechowywanie poświadczeń i unikanie trwałego kodowania ich w skryptach lub konfiguracjach.
  • Monitor: Monitorowanie połączeń i użycia bazy danych w celu zapewnienia bezpieczeństwa i wydajności.

Połącz usługę Azure SQL Database z usługi Azure DevOps Server 2022 uruchomioną lokalnie, umożliwiając usprawnione zarządzanie bazami danych i integrację z procesami programowania i wdrażania. Dostosuj konfiguracje i środki zabezpieczeń na podstawie zasad i wymagań organizacji.

Użyj połączenia usługi Azure SQL Database w Azure DevOps Server 2022

  1. Przygotowanie Azure DevOps Server:
    a. Upewnij się, że masz zainstalowany i skonfigurowany program Azure DevOps Server 2022 w środowisku lokalnym.</
    b. Dostęp do serwera Usługi Azure DevOps z odpowiednimi uprawnieniami do tworzenia potoków i zarządzania nimi.

  2. Skonfiguruj projekt i repozytorium usługi Azure DevOps (jeśli jeszcze nie zostało to zrobione):
    . Utwórz nowy lub użyj istniejącego projektu usługi Azure DevOps.
    b. Skonfiguruj repozytorium Git lub TFVC w celu przechowywania definicji potoku i skryptów.

  3. Utwórz potok:
    a. Przejdź do projektu usługi Azure DevOps.
    b. Wybierz Rurociągi>Rurociągi>Nowy rurociąg.
    c. Wybierz odpowiedni szablon przepływu pracy na podstawie swoich wymagań. W przypadku usługi Azure SQL Database możesz zacząć od pustego zadania lub wybrać szablon odpowiadający potrzebom wdrożenia (na przykład Azure Pipeline).
    d. Edytuj plik YAML dla potoku lub użyj edytora klasycznego, aby zdefiniować etapy i zadania w potoku.

  4. Dodawanie zadań do wdrożenia w usłudze Azure SQL Database:

    • Zadanie: Wdrażanie bazy danych programu SQL Server: Użyj zadania SqlAzureDacpacDeployment, aby wdrożyć zmiany w usłudze Azure SQL Database. Przykładowy fragment kodu 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)'
      

      Zastąp <your-server-name>, <your-database-name>, $(sqlUsername)i $(sqlPassword) odpowiednimi wartościami lub zmiennymi.

    • Zadanie: Zapytanie Usługi Azure SQL: Użyj zadania AzureSqlQuery do uruchamiania zapytań SQL względem usługi Azure SQL Database. Przykładowy fragment kodu 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. Bezpieczne zarządzanie poświadczeniami: użyj zmiennych usługi Azure DevOps lub integracji usługi Azure Key Vault, aby zarządzać poufnymi informacjami, takimi jak poświadczenia programu SQL Server (sqlUsername i sqlPassword).

  6. Wyzwalacz i potok uruchamiania:

    • Zapisz i zatwierdź zmiany w procesie.
    • Wyzwól potok ręcznie lub skonfiguruj wyzwalacze (na przykład podczas zatwierdzenia kodu lub zgodnie z harmonogramem) zgodnie z Twoją strategią wdrażania.
  7. Monitorowanie wykonywania pipeline'u:

    • Monitorowanie przebiegów potoków w usłudze Azure DevOps w celu zapewnienia pomyślnego wdrożenia w usłudze Azure SQL Database.
    • Przejrzyj dzienniki i dane wyjściowe, aby rozwiązać problemy podczas wdrażania.

Napiwek

  • Integracja z potokami wydania: Zintegruj swój potok kompilacji z potokami wydania, aby uzyskać bardziej złożone stany wdrożenia i zatwierdzenia.
  • Wprowadź zmiany przyrostowej bazy danych: Użyj narzędzi, takich jak SQL Server Data Tools (SSDT) lub migracji, aby zarządzać przyrostowymi zmianami schematu bazy danych.
  • Użyj kontroli wersji: Zachowaj zmiany skryptów SQL i bazy danych w ramach kontroli wersji, aby śledzić zmiany i zapewnić powtarzalność.

Dostosuj konfiguracje i zadania na podstawie konkretnych potrzeb związanych z wdrożeniem i wymagań organizacyjnych.

Tworzenie kopii zapasowej programu SQL Server

Tworzenie kopii zapasowej programu SQL Server dla usługi Azure DevOps Server 2022 przy użyciu konsoli administracyjnej usługi Azure DevOps Server obejmuje konfigurowanie ustawień kopii zapasowych i planowanie regularnych kopii zapasowych. Wykonaj następujące kroki, aby utworzyć kopię zapasową programu SQL Server.

Wymagania wstępne dotyczące kopii zapasowej

Kategoria Wymagania
Dostęp administrator dostęp do serwera, na którym jest zainstalowany serwer Usługi Azure DevOps.
uprawnienia Uprawnienie do konfigurowania kopii zapasowych i uzyskiwania dostępu do programu SQL Server Management Studio.

Tworzenie kopii zapasowej

  1. Uruchom konsolę administracyjną usługi Azure DevOps Server na serwerze, na którym jest zainstalowany serwer Usługi Azure DevOps, a następnie wybierz warstwę aplikacji>zaplanowane kopie zapasowe>Utwórz zaplanowane kopie zapasowe.

    Zrzut ekranu przedstawia przyciski wyboru w konsoli administracyjnej w celu utworzenia zaplanowanej kopii zapasowej.

  2. Wprowadź ścieżkę kopii zapasowej sieci, a następnie wybierz pozycję Dalej.

    Zrzut ekranu przedstawia wprowadzoną ścieżkę kopii zapasowej sieci.

  3. Wybierz preferowane alerty e-mail, a następnie kliknij Dalej.

    Zrzut ekranu przedstawia wyróżniony przycisk Dalej na potrzeby tworzenia procesu tworzenia ścieżki kopii zapasowej sieci.

  4. Wybierz harmonogram tworzenia kopii zapasowych na podstawie wymagań, a następnie wybierz pozycję Dalej.

    Zrzut ekranu przedstawia wybrany harmonogram tworzenia kopii zapasowej i wyróżniony przycisk Dalej.

  5. Potwierdź ustawienia konfiguracji i wybierz Sprawdź.

    Zrzut ekranu przedstawiający wyróżniony przycisk Weryfikuj na ekranie ustawień konfiguracji.

    Kreator kopii zapasowych sprawdza, czy ścieżka do kopii zapasowej istnieje i jest ścieżką sieciową.

    Zrzut ekranu przedstawiający postęp sprawdzania gotowości.

Rozwiązywanie błędów

Jeśli wystąpił błąd sprawdzania gotowości, zapoznaj się z poniższymi informacjami, aby uzyskać pomoc dotyczącą rozwiązywania problemów.

Błąd: Dostęp do konta usługi

Zrzut ekranu przedstawia błąd środowiska podczas sprawdzania gotowości.

komunikat o błędzie:TF401009: The Azure DevOps service account NT AUTHORITY\LOCAL SERVICE cannot access network shares. Change to an account that can access the backup path. Ten błąd występuje, gdy konto usługi to NT AUTHORITY\LOCAL SERVICE.

Zrzut ekranu przedstawiający podsumowanie warstwy aplikacji dla usługi lokalnej urzędu NT.

rozwiązanie :

  1. Utwórz użytkownika lokalnego z niezbędnymi uprawnieniami dostępu. Zrzut ekranu przedstawia nowo utworzonego użytkownika lokalnego i dostęp.

  2. W konsoli administracyjnej usługi Azure DevOps Server przejdź do ekranu warstwy aplikacji i wybierz pozycję Zmień konto.

  3. Zmień konto usługi na nowo utworzone konto użytkownika lokalnego. Zrzut ekranu przedstawia nowe członkostwa w grupach użytkowników.

  4. Wykonaj ponownie proces tworzenia kopii zapasowej, aby pomyślnie utworzyć kopię zapasową i ponownie uruchomić testy gotowości. Zrzut ekranu pokazuje, że wszystkie testy zakończyły się pomyślnie.

    Pomyślna konfiguracja kopii zapasowej:

    Zrzut ekranu przedstawia pomyślną konfigurację kopii zapasowej.

    Zaplanowane logi kopii zapasowej:

    Zrzut ekranu przedstawia pliki dzienników z zaplanowanych kopii zapasowych.

    Zaplanowane kopie zapasowe konsoli administracyjnej:

    Zrzut ekranu przedstawiający konsolę administracyjną z wyświetlonym ekranem zaplanowanych kopii zapasowych.

Błąd: plik dziennika

Zrzut ekranu przedstawia wyróżniony link, aby utworzyć pełną kopię zapasową teraz.

Przykładowa lokalizacja pliku dziennika:

C:\ProgramData\Microsoft\Azure DevOps\Server Configuration\Logs\Azure_DevOps_Server_Scheduled Backups_0627_192409.log

Przykładowy komunikat o błędzie pliku dziennika:

[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)

rozwiązanie :

  • Przed wykonaniem kopii zapasowej upewnij się, że wszystkie grupy plików są w trybie online.

    przykład LeadingKeyOffline:Zrzut ekranu przedstawia właściwości bazy danych i przykładowy plik bazy danych LeadingKey.

  • Przetestuj proces tworzenia kopii zapasowej przy użyciu zapytań SQL, aby zidentyfikować i rozwiązać wszelkie problemy z określonymi grupami plików.