Şirket içi Azure DevOps için bir ortamdan diğerine geçme

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

Ortam tabanlı en yaygın taşıma senaryosu, etki alanı adı değişikliği veya çalışma grubundan etki alanına geçiş olsun, Azure DevOps Server dağıtımının etki alanını değiştirmektir.

Önemli

Bazı durumlarda, bir Azure DevOps Server dağıtımının etki alanını ve donanımını değiştirmek isteyebilirsiniz. Donanımı değiştirmek geri yükleme tabanlı bir taşıma işlemidir ve iki taşıma türünü hiçbir zaman birleştirmemelisiniz. Önce donanım taşıma işlemini tamamlayın ve ardından ortamı değiştirin.

Buna ek olarak, Azure DevOps Server'daki kimlikleri çevreyle ilgili bir hareketin bir parçası olarak değiştirmek, en sık çakışmalara veya sorunlara neden olan yöndür. Kimlikler Komutu güçlü bir araçtır ancak bazı sınırlamaları vardır. Taşımanızı planlamanın bir parçası olarak bu konuda bilgi edinin. Başarılı bir taşımanın sağlanmasına yardımcı olmak için aşağıdaki gereksinimleri anladığınızdan emin olun:

  • Azure DevOps Server'da bir kullanıcı hesabı mevcut olduğunda kaldırılamaz veya başka bir hesabın eşlenmesi mümkün değildir. Örneğin, DomainA/UserA'yı DomainB/UserB'ye taşıyorsanız, Kimlikler komutu yalnızca Etki AlanıB/KullanıcıB Azure DevOps Server zaten mevcut değilse kullanıcıyı geçirmek için çalışır.
  • Yerel Yöneticiler grubunun üyeleri otomatik olarak Azure DevOps Server eklendiğinden, etki alanını veya ortamı değiştirmeden önce bu gruptan geçirilmesini istediğiniz tüm hesapları kaldırdığınızdan emin olun.

Daha fazla arka plan bilgisi için, aracın sınırlamaları da dahil olmak üzere Azure DevOps Server kimlik değişikliklerinin nasıl çalıştığına ilişkin ayrıntılı bir açıklama için buraya gidin.

Aşağıdaki bölümlerde Azure DevOps Server dağıtımınızın ortamını değiştirme adımlarını inceleyeceğiz:

  1. İzinleri ve hesapları denetleme
  2. hizmetleri Azure DevOps Server durdurma
  3. Verileri Yedekleme
  4. Azure DevOps Server yeni etki alanına ekleme
  5. Azure DevOps Server kullanıcı ve hizmet hesaplarını taşıma
  6. Raporlama ve Analysis Services'ı yapılandırma
  7. Azure DevOps Server hizmetlerini yeniden başlatma

İzinleri ve hesapları denetleme

Azure DevOps Server ortamını başarıyla değiştirmek için hem yerel bilgisayarda hem de Azure DevOps Server ve dağıtımınızın bağımlı olduğu tüm yazılımlar için yönetici olmanız gerekir: SQL Server, raporlama ve dağıtımınızın birlikte birlikte çalışacağı Project Server gibi diğer yazılımlar. Ancak, yerel Administrators grubunun tüm üyeleri otomatik olarak Azure DevOps Server eklenir ve bu da hesapları geçirmeye çalışırken sorunlara neden olabilir. Bu nedenle, çevre taşıma işleminin bir parçası olarak geçirmeyi amaçlamadığınız bir hesap kullanmalısınız. Yalnızca taşıma için özel bir yönetim hesabı eklemeyi ve geçişi gerçekleştirmek için bu hesabı kullanmayı düşünebilirsiniz.

Yönetici düzeyinde izinleri doğrulamak için

  • Kullandığınız hesabın aşağıdaki grupların bir üyesi olduğundan emin olun:
    • Sunucular: Yöneticiler (yerel Yöneticiler grubu veya eşdeğeri)
    • Azure DevOps Server: Team Foundation Yöneticileri ve Yönetici Konsolu Kullanıcıları
    • SQL Server: sysadmin

Bu gruplardan birinin veya daha fazlasının üyesi değilseniz, şimdi izinleri alın.

Artık gerekli tüm izinlere sahip bir hesap kullandığınızdan emin olduğunuz için, taşıdığınız ortamda adlarla veya gruplarla çakışma olup olmadığını görmek için hesapları denetlemeye başlayabilirsiniz. Yerel Administrators grubunun üyesi olan hesapların geçirilebileceğini zaten biliyoruz, bu nedenle önce bunları kaldıralım.

Yerel Yöneticiler grubundan geçirilecek hesapları kaldırma

  • Yerel Administrators grubunu açın ve yeni ortama geçirmek istediğiniz tüm hesapları kaldırın. Etkilenecek diğer tüm gruplar için bu adımı yineleyin.

Şimdi geçerli Azure DevOps Server ortamındaki kimliklerin listesini denetleyin ve yeni ortamda mevcut olabilecek gruplarla veya tek tek kullanıcı hesaplarıyla ilgili olası sorunları arayın.

İpucu

Hangi hesapların otomatik olarak geçirilemeyeceğiyle ilgili ayrıntılar da dahil olmak üzere, ortam taşıma işlemi kapsamında taşınacak kimliklerin bir tablosunu veya geçiş haritasını oluşturmayı göz önünde bulundurun.

Kimlikleri denetleme

  1. Azure DevOps için uygulama katmanı sunucusunda, yönetim izinlerine sahip bir Komut İstemi penceresi açın, %ProgramFiles%\Microsoft Visual Studio 12.0 Team Foundation Server\Tools'a gidin ve şu anda sistemde bulunan kimlikleri görüntülemek için aşağıdaki komutu çalıştırın:

    TFSConfig Identities
    
  2. Kimlik listesi görüntülenir. Azure DevOps Server taşıyabileceğiniz ortamda kimliklerle ilgili olası yinelemeler veya sorunlar olmadığından emin olmak için bu kullanıcıları ve grupları denetleyin ve olası çakışmaları azaltmak için adımlar atın.

Hizmetleri durdurma

Hizmetlerin durdurulması, kullanıcıların taşıma işlemi sırasında veya sonrasında iş öğelerinde değişiklik yapamayacağından veya kaynak kodu özgün dağıtımda iade edemediğinden emin olunmasına yardımcı olur.

  1. Uygulama katmanı bilgisayarında bir Komut İstemi penceresi açın ve dizinleri Sürücü:\%programfiles%\TFS 12.0\Tools olarak değiştirin.

  2. Aşağıdaki TFSServiceControl komutunu yazın:

    TFSServiceControl sessiz moda alın

Veritabanlarını ve SQL Server Reporting Services şifreleme anahtarını yedekleme

  1. Azure DevOps Server için yönetim konsolunu açın ve Zamanlanmış Yedeklemeler sayfasında tam yedekleme yapın. Yedekleme, yedekleme planınızda yedekleme için yapılandırdığınız her şeyi yedekler, ancak planda zamanlanan zamana göre değil hemen yedekler. Dağıtımınız raporlama kullanıyorsa, şifreleme anahtarını bu yedekleme kümesinin bir parçası olarak yedekleyebilirsiniz.

    İş tamamlarken pencereyi kapatabilirsiniz

    (Yapılandırılmış yedeklemeleriniz yoksa, tam yedekleme yapmadan önce bir plan oluşturmanız gerekir.)

  2. Yedekleme tamamlandıktan sonra yedeklemenin depolama cihazında veya ağ paylaşımında kullanılabilir olduğunu ve bu yedeklemeye yeni donanımdan erişebildiğinizden emin olun.

Uygulama katmanı sunucusunu yeni etki alanına ekleme

  1. Her sunucuda, bilgisayarın özelliklerini açın.

  2. Bilgisayarın ayarlarını, sunucuya katılmak istediğiniz etki alanı veya çalışma grubuyla değiştirin.

    Bu bilgisayarı etki alanına ekleme izinlerine sahip bir hesabın kullanıcı adını ve parolasını sağlamanız istenirse, uygun kimlik bilgilerini sağlayın.

  3. Etki alanı değişikliğinin etkili olması için bilgisayarı yeniden başlatın.

    Not

    Bilgisayarı yeniden başlattıktan sonra hizmetlerin veya sürücülerin başlatılamadığını belirten bir uyarı görüntülenebilir. Sonraki yordamla devam edin.

Kullanıcı hesaplarını ve hizmet hesaplarını taşıma

Bu konunun başında belirtildiği gibi, özellikle kullanıcı geçişini dikkatle planlamadıysanız, hesapları taşımak büyük olasılıkla zorluklarla karşılaşabileceğiniz durumdur. TFSConfig Kimlikleri komutu, herhangi bir hesabı Azure DevOps Server zaten var olan bir hesaba geçiremez.

Hesap adları her iki etki alanında da aynıysa ve tek fark etki alanı adıysa, tüm kimlikleri aynı anda değiştirmek için TFSConfig Kimlikleri toplu iş modunu kullanabilirsiniz. Aksi takdirde, aşağıda ayrıntılı olarak açıklandığı gibi kimlikleri tek tek değiştirmeniz ve farklı bir hedef hesap adı belirtmeniz gerekir.

  1. Azure DevOps için uygulama katmanı sunucusunda, yönetim izinlerine sahip bir Komut İstemi penceresi açın, %ProgramFiles%\Microsoft Visual Studio 12.0 Team Foundation Server\Tools'a gidin ve hizmet hesabının hizmet kimliklerini (SID) yeni etki alanıyla değiştirmek için aşağıdaki komutu çalıştırın:

    TFSConfig identities /change /fromdomain:OldComputerorDomainName /todomain:NewDomainName /account:OldTFSServiceAccount /toaccount:NewTFSServiceAccount
    

    Uyarı

    Hizmet hesabınız Ağ Hizmeti gibi bir sistem hesabıysa, yeni ortamda aynı ada sahip bir sistem hesabı bulunduğundan hizmet hesabını doğrudan geçiremezsiniz. İki aşamalı bir işlem değişikliği yapmanız gerekir. Kimlikler Komutu'ndaki örne bakın.

  2. Yeni ortamda aynı ada sahip tüm hesapları geçirmek için aşağıdaki komutu yazın:

    TFSConfig Identities /change /fromdomain:OldDomainName /todomain:NewDomainName
    

    Bu işlem hesapları toplu olarak işler.

  3. Yeni etki alanınız, adın ortamlar arasında değiştiği bir veya daha fazla kimlik içeriyorsa, bu kimliklerin her biri için SID'leri el ile güncelleştirmeniz gerekir. Örneğin Christie Church'ün kullanıcı hesabı önceki ortamda Fabrikam\CChurch ise ancak yeni ortamda NewFabrikam\ChristieC ise SID'sini el ile güncelleştirmeniz gerekir. Bu gereksinime sahip her hesap için aşağıdaki komutu yazın:

    TFSConfig Identities /change /fromdomain:OldDomainName /todomain:NewDomainName /account:OldAccountName /toaccount:NewAccountName
    
  4. Şimdi hizmet hesabını güncelleştirmek için aşağıdaki komutu çalıştırın:

    TFSConfig Accounts /change /AccountType:ApplicationTier /account:AccountName /password:Password
    
  5. Dağıtımınız raporlama kullanıyorsa, raporlama için kullanılan veri kaynağı hesabını güncelleştirmek için aşağıdaki komutu çalıştırın:

    TFSConfig Accounts /change /AccountType:ReportingDataSource /account:AccountName /password:Password
    
  6. Dağıtımınız Azure DevOps Proxy Sunucusu kullanıyorsa, ara sunucu için kullanılan hizmet hesabını güncelleştirmek için aşağıdaki komutu çalıştırın:

    TFSConfig Accounts /change /AccountType:Proxy /account:AccountName /password:Password
    

    Not

    Güvenilir olmayan bir etki alanına geçiyorsanız, kullanıcıları ve grupları ekiplere, projelere, koleksiyonlara ve Azure DevOps Server kendiniz de eklemeniz gerekebilir. Daha fazla bilgi için bkz. Projelere kullanıcı ekleme, Proje koleksiyonları için yönetici izinlerini ayarlama ve Azure DevOps Server için yönetici izinlerini ayarlama.

  7. Dağıtımınız Project Server ile tümleştirilmişse, hizmet hesaplarını işlem için gereken izinlerle yapılandırmak için ek adımlar gerçekleştirmeniz gerekebilir. Daha fazla bilgi için bkz. TFS-Project Sunucusu tümleştirmesini desteklemek için izin atama ve ConfigureTFS-Project Server tümleştirmesi.

Raporlama ve Analysis Services'ı yapılandırma

Dağıtımınızın bir parçası olarak raporlama kullanmıyorsanız bu yordamı atlayabilirsiniz.

Bir rapor sunucusunu bu taşıma türünün bir parçası olarak yeniden adlandırdıysanız, Azure DevOps Server yeni konumundaki rapor sunucusuna yeniden yönlendirmeniz gerekir. Ayrıca ambarı yeniden başlatmanız ve Analysis Services için veritabanını el ile yeniden oluşturmanız gerekir.

  1. Azure DevOps için yönetim konsolunu açın, Raporlama düğümüne gidin ve ayarları düzenleyin.

    Raporlar hala eski sunucuya işaret ediyor

  2. Üç sekmedeki değerleri sunucunun yeni adını içerecek şekilde değiştirin. Yeni ortamda veri kaynakları hesabı için doğru bilgileri sağladığınıza emin olun.

    3 sekmede de bilgilerin doğru olduğundan emin olun

  3. Raporlamayı yeniden başlatmak için İşleri Başlat'ı seçin.

  4. Ambarı yeniden derlemek için Yeniden Derlemeyi Başlat'ı seçin.

Yedeklemeleri yapılandırma

Ağ paylaşımı adı veya depolama cihazı etki alanı adı değişikliğiyle değiştiyse, zamanlanmış yedekleme planını bu yeniden adlandırılmış kaynaklara işaret eden şekilde güncelleştirmeniz gerekir.

  • Yönetim konsolunda Zamanlanmış Yedeklemeler düğümüne gidin ve yeni sunucudaki Azure DevOps Server veritabanlarını yedeklemek için zamanlanmış yedeklemeleri yeniden yapılandırın. Daha fazla bilgi için bkz. Yedekleme zamanlaması ve planı İçerik Oluşturucu.

Hizmetleri yeniden başlatma

Azure DevOps Server yeni ortamla ilgili tüm bilgilerle güncelleştirdiğinize göre, hizmetleri yeniden başlatın.

  1. Azure DevOps Server uygulama katmanı bilgisayarında, yönetici izinlerine sahip bir Komut İstemi penceresi açın ve dizinleri Sürücü:\%programfiles%\TFS 12.0\Tools olarak değiştirin.

  2. Aşağıdaki TFSServiceControl komutunu yazın:

    TFSServiceControl unquiesce

Soru-Cevap

S: Dağıtım için etki alanlarını değil fiziksel sunucuyu veya sunucuları değiştirmek istiyorum. Bunu yapabilir miyim?

Y: Evet. Buna donanım tabanlı taşıma denir ve adımlar Bir donanımdan diğerine taşıma veya kopyalama bölümünde sağlanır. Ortam tabanlı taşımayı donanım tabanlı taşıma ile birleştirmeyi denememelisiniz. Önce donanım taşıma işlemini tamamlayın ve ardından ortamı değiştirin.