Aracılığıyla paylaş


Azure DevOps Server ile Azure SQL Veritabanı kullanma

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

Azure DevOps Server'ı Azure SQL Veritabanı ile yapılandırmak için bu makaledeki adımları kullanın. Bu topoloji, şirket içi SQL sunucusu kullanımıyla karşılaştırıldığında birkaç adım daha içerir.

Önkoşullar

Kategori Gereksinimler
Azure DevOps Server sürümü Azure SQL Veritabanı yalnızca Azure DevOps Server 2019 ve sonraki sürümlerle kullanılabilir.
Yükleme ortamı Azure VM'ye yüklenen Azure DevOps Server.
Kimlik Doğrulaması Sanal makinede (VM), Azure SQL veritabanında kimlik doğrulaması yapmak için kullanılan sistem tarafından yönetilen kimlik etkinleştirilmiştir.
Etki alanı üyeliği VM bir etki alanına katılır ancak çalışma grubuna katılmaz.
Veritabanı türü Azure SQL veritabanları tek veritabanlarıdır. Yönetilen örnekler ve elastik havuzlar Azure DevOps Server 2022 ve daha yeni sürümlerde desteklenir.
Güvenlik duvarı kuralları Azure SQL Veritabanı güvenlik duvarı kuralları, Azure DevOps Server'ın barındırıldığı IP adresinden veya alt ağdan gelen bağlantılara izin verir. Bunu yapmak için şu adrese gidin: Azure portalı>Azure SQL Veritabanı>Ayarları>Güvenlik duvarları ve sanal ağlar> , Azure DevOps Server'ınızın genel IP adresinden veya alt ağından erişime izin vermek için yeni bir kural ekler.
Araçlar - Azure SQL Veritabanı sağlanır ve Azure'dan erişilebilir. Sunucu adı, veritabanı adı ve kimlik doğrulama yönteminin kaydı.
- Şirket içi ortamınızda çalışan Azure DevOps Server 2022.
- Azure DevOps Server'ın yüklü olduğu makineye yüklenen SSMS.

Tüm Genel Amaçlı ve Premium SKU'ların yanı sıra Standart SKU S3 ve üzeri desteklenir. Ancak Temel SKU'lar ve S2 kategorisindeki Standart SKU'lar desteklenmez.

Azure SQL Veritabanı kullanan Azure DevOps Server yapılandırmaları, SQL Server Analysis Services raporlama özelliklerine sahip eski SQL Server Reporting Services'i desteklemez. Bunun yerine, raporlama ve analiz için Azure DevOps Analytics'i kullanabilirsiniz.

Azure SQL Veritabanı şifrelenmiş saklı yordamları desteklemez.

Azure SQL Veritabanı ayarlama

  1. Sanal makinelerinizde yönetilen bir kimlik yapılandırın. Şu anda yalnızca sistem tarafından yönetilen kimlikleri destekliyoruz.

    Yapılandırmayı aşağıdakiler de dahil olmak üzere tüm standart mekanizmaları kullanarak çalıştırabilirsiniz:

  2. Yeni bir Azure DevOps Server örneği ayarlamak için iki Azure SQL veritabanı oluşturun:

    • AzureDevOps_Yapılandırma
    • AzureDevOps_DefaultCollection
  3. Azure SQL Veritabanı sunucunuz için Microsoft Entra Id kimlik doğrulamasını yapılandırın. Kendinizi sunucuda Microsoft Entra yöneticisi yapın. Kalan yapılandırma adımlarını tamamlamak için veritabanında yönetici izinlerine sahip olmanız gerekir. Bu izni daha sonra değiştirebilirsiniz.

    a. Ana veritabanınızda aşağıdaki T-SQL komutunu çalıştırın. VMName değerini veritabanına eklediğiniz yönetilen kimliği olan sanal makinenin adıyla değiştirin:

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

    b. Yapılandırmada ve tüm koleksiyon veritabanlarında aşağıdaki T-SQL komutunu çalıştırın:

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

    Veritabanınız artık VM'nizin yönetilen kimlik üzerinden iletişim kurmasına izin veriyor.

    Not

    Bağlantıyı geri yüklemek için Azure VM'nizde anlık görüntüyü geri yükleme veya VM'yi yeniden adlandırma gibi değişiklikler yaparsanız:

Azure DevOps Server'ı yapılandırma

Azure DevOps Server yapılandırma sihirbazına dönün. Yeni bir örnek ayarlıyorsanız, Bu, yeni bir Azure DevOps Server dağıtımıdır'ı seçin. Veritabanlarınızda mevcut veriler varsa ve yükseltme veya geçiş yapıyorsanız, bu Azure DevOps Server dağıtımı için Kullanılacak mevcut veritabanlarım var seçeneğini seçin.

Yapılandırma sihirbazında Veritabanı sayfasına gittiğinizde Azure SQL Veritabanı sunucu örneğini belirtin. Genellikle, sunucu örneği SQLInstanceName.database.windows.net biçimindedir.

Artık Azure SQL Veritabanı üzerinde çalışan bir Azure DevOps Server örneğine sahipsiniz.

Şirket içi SSMS'den Azure SQL veritabanına bağlanma

Şirket içi SSMS'nizden veritabanı bulunan bir Azure SQL'e bağlanmak için aşağıdaki adımları uygulayın:

  1. SQL'den blob depolama/dosya paylaşımına özel uç nokta olarak aynı sanal ağda çalışan VM'den SSMS kullanarak SQL Server Management Studio aracılığıyla dışarı aktarın.

    Veri Katmanı Uygulamasını Dışarı Aktar seçeneğinin vurgulanmış düğmelerini gösteren ekran görüntüsü.

  2. Azure SQL veritabanını bir .bacpac dosyasına aktarmak için SQL Server Management Studio Veri katmanı uygulamasını dışarı aktarma sihirbazını kullanabilirsiniz. .bacpac dosyasını Azure blob depolama veya dosya paylaşımında depolayabilirsiniz.

    Veritabanınızı dışarı aktarmaya yönelik giriş ekranını gösteren ekran görüntüsü.

  3. SSMS> üzerinde mantıksal SQL Server'daki SQL Veritabanı'na sağ tıklayın, Görevler menüsünden >Veri katmanı uygulamasını dışarı aktarma sihirbazını seçin.

    Dışarı Aktarma Ayarları ekranında girilen bacpac dosya depolama konumunu gösteren ekran görüntüsü.

  4. sonrakiseçin.

    Belirtilen ayarlarınızın özetini gösteren ekran görüntüsü.

  5. BACPAC dosyasını depolamak için konumu seçin.

    İşlem tamamlandı iletisi ve sonuçlar sayfasını gösteren ekran görüntüsü.

  6. Kapat'ıseçin.

DAC paketleri burada bulunur: C:\Users\{sample-user-name}\OneDrive - Microsoft\Documents\SQL Server Management Studio\DAC Packages.

Azure DevOps Server 2022'den Azure SQL Veritabanı'nu bağlama

Azure DevOps Server 2022'den (şirket içi) Azure SQL Veritabanı'nın bağlanması, erişimi yapılandırmayı, bağlantıyı sağlamayı ve uygun kimlik bilgilerini kullanmayı içerir. Azure DevOps Server 2022'den Azure SQL Veritabanı'na bağlanmak için aşağıdaki adımları uygulayın.

Azure SQL Veritabanı'na bağlanma

  1. Azure SQL Veritabanı bağlantı ayrıntılarını alın:

    • Sunucu adı: <your-server-name>.database.windows.net
    • Veritabanı adı: <your-database-name>
    • Kimlik doğrulama yöntemi: SQL Server Kimlik Doğrulaması (kullanıcı adı/parola) veya Microsoft Entra Id kimlik doğrulaması.
  2. SQL Server Management Studio (SSMS) kullanarak bağlanma: a. Azure DevOps Server'ın yüklü olduğu makinede SQL Server Management Studio'yu açın. b. Azure SQL Veritabanı'na bağlanın: c. SSMS'i başlatın. ö. Sunucuya Bağlan penceresinde:

    • Sunucu Adını girin: <your-server-name>.database.windows.net
    • Kimlik Doğrulaması: SQL Server Kimlik Doğrulaması'nı seçin.
    • Kullanıcı Adınızı ve Parolanızı girin.
    • Bağlan'ı seçin. Bağlandıktan sonra Azure SQL Veritabanı, SSMS'deki Nesne Gezgini altında listelenir.
  3. Bağlantıyı test etme: SSMS'de sorgu veya komut yürütme:

     SELECT @@VERSION;
    

    Bu sorgu, bağlantının başarılı olduğunu onaylayarak Azure SQL Veritabanınızın SQL Server sürümünü döndürür.

  4. Azure DevOps Server'da bağlantıyı kullanın: SSMS'den bağlantıyı doğruladıktan sonra, aşağıdakiler gibi çeşitli görevler için Azure DevOps Server'da bu bağlantıyı kullanabilirsiniz:

    • Otomatik dağıtımlar: Veritabanı değişikliklerini dağıtmak için Azure DevOps Server'da yayın işlem hatlarını ayarlayın.
    • Veri geçişi: Azure DevOps Server ile tümleştirilmiş SQL betiklerini veya veri araçlarını kullanın.
    • Sürekli tümleştirme: Veritabanı değişikliklerini CI/CD işlem hatlarınızla tümleştirin.

Tavsiye

  • Güvenli olun: Daha güvenli erişim için Microsoft Entra ID kullanmayı göz önünde bulundurun.
  • Kimlik bilgilerini yönetme: Kimlik bilgilerini güvenli bir şekilde depolayın ve bunları betiklerde veya yapılandırmalarda sabit kodlamaktan kaçının.
  • Ekran: Güvenlik ve performans sağlamak için veritabanı bağlantılarını ve kullanımını izleyin.

Şirket içinde çalışan Azure DevOps Server 2022'den Azure SQL Veritabanı'nın bağlanması, geliştirme ve dağıtım süreçlerinizle kolaylaştırılmış veritabanı yönetimi ve tümleştirmesi sağlar. Yapılandırmaları ve güvenlik ölçülerini kuruluşunuzun ilkelerine ve gereksinimlerine göre ayarlayın.

Azure DevOps Server 2022'de Azure SQL Veritabanı bağlantınızı kullanma

  1. Azure DevOps Server'ı hazırlama:
    a. Şirket içi ortamınızda Azure DevOps Server 2022'nin yüklü ve yapılandırılmış olduğundan emin olun.</
    b. İşlem hatlarını oluşturmak ve yönetmek için uygun izinlere sahip Azure DevOps Sunucusu'na erişim.

  2. Azure DevOps proje ve deposunu ayarlayın (henüz yapılmadıysa):
    a. Yeni bir Azure DevOps projesi oluşturun veya mevcut bir Azure DevOps projelerini kullanın.
    b. İşlem hattı tanımlarınızı ve betiklerinizi depolamak için bir Git veya TFVC deposu ayarlayın.

  3. İşlem hattı oluşturma:
    a. Azure DevOps projenize gidin.
    b. İşlem Hatları>İşlem Hatları> seçin.
    c. Gereksinimlerinize göre uygun işlem hattı şablonunu seçin. Azure SQL Veritabanı için Boş bir iş ile başlayabilir veya dağıtım gereksinimlerinize (örneğin, Azure Pipeline) uygun bir şablon seçebilirsiniz.
    d. İşlem hattı YAML dosyasını düzenleyin veya işlem hattı aşamalarınızı ve görevlerinizi tanımlamak için klasik düzenleyiciyi kullanın.

  4. Azure SQL Veritabanı'na dağıtılacak görevleri ekleyin:

    • Görev: SQL Server Veritabanı Dağıtımı:SqlAzureDacpacDeployment Değişiklikleri Azure SQL Veritabanınıza dağıtmak için bu görevi kullanın. Örnek YAML kod parçacığı:

      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>ve $(sqlUsername) değerlerini uygun değer veya değişkenlerle değiştirin$(sqlPassword).

    • Görev: Azure SQL Sorgusu:AzureSqlQuery Görevi kullanarak Azure SQL Veritabanınızda SQL sorguları çalıştırın. Örnek YAML kod parçacığı:

      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. Kimlik bilgilerini güvenli bir şekilde yönetin: SQL Server kimlik bilgileri (sqlUsername ve sqlPassword) gibi hassas bilgileri yönetmek için Azure DevOps değişkenlerini veya Azure Key Vault tümleştirmesini kullanın.

  6. İşlem hattını tetikleme ve çalıştırma:

    • İşlem hattı değişikliklerinizi kaydedin ve onaylayın.
    • dağıtım stratejinize göre işlem hattını el ile tetikleyin veya tetikleyicileri (örneğin, kod işleme, zamanlama) ayarlayın.
  7. İşlem hattı yürütmeyi izleme:

    • Azure SQL Veritabanı'na yapılan dağıtımların başarılı olduğundan emin olmak için Azure DevOps'ta işlem hattı çalıştırmalarını izleyin.
    • Dağıtım sırasındaki sorunları gidermek için günlükleri ve çıktıları gözden geçirin.

Tavsiye

  • Yayın İşlem Hatları ile tümleştirme: Daha karmaşık dağıtım senaryoları ve onayları için derleme işlem hattınızı yayın işlem hatları ile tümleştirin.
  • Artımlı veritabanı değişiklikleri yapın: Veritabanı şemanızda artımlı değişiklikleri yönetmek için SQL Server Veri Araçları (SSDT) veya geçişler gibi araçları kullanın.
  • Sürüm denetimini kullan: Değişiklikleri izlemek ve yeniden üretilebilirliği sağlamak için SQL betiklerinizi ve veritabanı değişikliklerinizi sürüm denetimi altında tutun.

Yapılandırmaları ve görevleri belirli dağıtım gereksinimlerinize ve kuruluş gereksinimlerinize göre ayarlayın.

SQL Server yedeklemesi oluşturma

Azure DevOps Server Yönetim Konsolu'nu kullanarak Azure DevOps Server 2022 için SQL Server yedeklemesi oluşturmak, yedekleme ayarlarını yapılandırmayı ve normal yedeklemeleri zamanlamayı içerir. SQL Server yedeklemesi oluşturmak için aşağıdaki adımları uygulayın.

Yedekleme önkoşulları

Kategori Gereksinimler
Erişim Azure DevOps Server'ın yüklü olduğu sunucuya yönetici erişimi.
İzinler Yedeklemeleri yapılandırma ve SQL Server Management Studio'ya erişme izni.

Yedekleme oluşturma

  1. Azure DevOps Server'ın yüklü olduğu sunucuda Azure DevOps Server Yönetim Konsolu'nu başlatın ve Uygulama Katmanı>Zamanlanmış Yedeklemeleri Zamanlanmış Yedeklemeler>Oluştur'u seçin.

    Zamanlanmış yedekleme oluşturmak için yönetim konsolunda seçime yönelik düğmeleri gösteren ekran görüntüsü.

  2. Ağ yedekleme yolunu girin ve İleri'yi seçin.

    Girilen ağ yedekleme yolunu gösteren ekran görüntüsü.

  3. İstediğiniz e-posta uyarılarını seçin ve ardından İleri'yi seçin.

    Ağ yedekleme yolu oluşturma işlemi için vurgulanmış İleri düğmesini gösteren ekran görüntüsü.

  4. Gereksinimlerinize göre bir yedekleme zamanlaması seçin ve ardından İleri'yi seçin.

    Seçili yedekleme zamanlamasını ve İleri düğmesinin vurgulandığı ekran görüntüsü.

  5. Yapılandırma ayarlarınızı onaylayın ve Doğrula'yı seçin.

    Yapılandırma ayarları ekranında vurgulanmış Doğrula düğmesini gösteren ekran görüntüsü.

    Yedekleme sihirbazı, yedekleme yolunun mevcut olduğunu ve bir ağ yolu olduğunu doğrular.

    Hazırlık kontrol sürecinin ilerleme durumunu gösteren ekran görüntüsü.

Hataları giderme

Hazırlık denetimi hatası varsa sorun giderme konusunda yardım için aşağıdaki bilgilere bakın.

Hata: Hizmet Hesabı Erişimi

Hazır olma denetimi sırasında ortam hatasını gösteren ekran görüntüsü.

Hata mesajı:TF401009: The Azure DevOps service account NT AUTHORITY\LOCAL SERVICE cannot access network shares. Change to an account that can access the backup path. Bu hata, hizmet hesabı NT AUTHORITY\LOCAL SERVICE olduğunda oluşur.

NT Yetkili Yerel Hizmeti için uygulama katmanı özetini gösteren ekran görüntüsü.

Çözüm:

  1. Gerekli erişim izinlerine sahip bir yerel kullanıcı oluşturun. Yeni oluşturulan yerel kullanıcı ve erişimi gösteren ekran görüntüsü.

  2. Azure DevOps Server Yönetim Konsolu'nda Uygulama Katmanı ekranına gidin ve Hesabı Değiştir'i seçin.

  3. Hizmet hesabını yeni oluşturulan yerel kullanıcı hesabıyla değiştirin. Yeni kullanıcı grubu üyeliklerini gösteren ekran görüntüsü.

  4. Yedeklemeyi başarıyla oluşturmak ve hazırlık denetimlerini yeniden çalıştırmak için yedekleme işlemini yineleyin. Tüm denetimlerin başarılı olduğunu gösteren ekran görüntüsü.

    Başarılı yedekleme yapılandırması:

    Başarılı yedekleme yapılandırmasını gösteren ekran görüntüsü.

    Zamanlanmış yedekleme günlükleri:

    Zamanlanmış yedekleme günlükleri dosyalarını gösteren ekran görüntüsü.

    Yönetim Konsolu zamanlanmış yedeklemeleri:

    Zamanlanmış yedeklemeler ekranını gösteren yönetim konsolunu gösteren ekran görüntüsü.

Hata: Günlük Dosyası

Ekran görüntüsü, şimdi tam yedeklemeyi almak için vurgulanan bağlantıyı gösterir.

Örnek günlük dosyası konumu:

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

Örnek günlük dosyası hata iletisi:

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

Çözüm:

  • Yedeklemeyi gerçekleştirmeden önce tüm dosya gruplarının çevrimiçi olduğundan emin olun.

    LeadingKeyOffline örneği:Ekran görüntüsü, veritabanı özelliklerini ve LeadingKey veritabanı dosyası örneğini gösterir.

  • Belirli dosya gruplarıyla ilgili sorunları belirlemek ve çözmek için SQL sorgularını kullanarak yedekleme işlemini test edin.