Sunucu GitHub Enterprise oluşturma

Şirket içi GitHub Enterprise Server' Azure Pipelines. Şirket içi sunucunuz İnternet'e açık olabilir veya açık değildir.

GitHub Enterprise Sunucunuza, Azure Pipelines hizmetinin çalıştır Azure Pipelines varsa:

  • Klasik derleme ve YAML işlem hatları kurarak
  • CI, PR ve zamanlanmış tetikleyicileri yapılandırarak

GitHub Enterprise Sunucunuza, Azure Pipelines hizmeti çalıştıran sunuculardan ulaşılamazsa:

  • Yalnızca klasik derleme işlem hatlarını kurarak
  • yalnızca el ile veya zamanlanmış derlemeler başlat
  • YAML işlem hatlarını ayarlayamazsiniz
  • Klasik derleme işlem hatlarınız için CI veya PR tetikleyicilerini yapılandıramazsiniz

Şirket içi sunucunuza Microsoft tarafından barındırılan aracılardan ulaşılabilirse, işlem hatlarınızı çalıştırmak için bunları kullanabilirsiniz. Aksi takdirde, şirket içi sunucunuza erişen ve kodu getiren şirket içinde barındırılan aracılar ayarlayabilirsiniz.

Azure Pipelines'dan Azure Pipelines

Denetlemeniz gereken ilk şey, GitHub Enterprise Sunucunuza Azure Pipelines olup olmadığıdır.

  1. Kullanıcı arabirimi Azure DevOps proje ayarlarınıza gidin ve Pipelines altında HizmetBağlantıları'Pipelines.
  2. Yeni hizmet bağlantısı'GitHub Enterprisetürü olarak Sunucu'ya seçin.
  3. GitHub Enterprise Server sunucunuzla bağlantı oluşturmak için gerekli GitHub Enterprise girin.
  4. Hizmet bağlantısı panelinde Doğrula'yı seçin.

Doğrulama başarılı olursa, Azure Pipelines hizmetini GitHub Enterprise sunucuya ulaşabilir. Devam edin ve bağlantıyı ayarlayın. Ardından, klasik derleme veya YAML işlem hattı oluştururken bu hizmet bağlantısını kullanabilirsiniz. İşlem hattı için CI ve PR tetikleyicilerini de yapılandırmış oluruz. GitHub Server ile Azure Pipelines, GitHub Enterprise çoğu özelliktir. Bu özellikleri anlamak için GitHub belgeleri gözden geçirme. Bazı farklılıklar şu şekildedir:

  • GitHub Azure Pipelines tümleştirmesi, markette Azure Pipelines bir GitHub kolaylaştırır. Bu uygulama, belirli bir kullanıcının OAuth belirteclerine güvenmek zorunda kalmadan tümleştirmeyi ayarlamanıza olanak sağlar. GitHub Enterprise Server ile çalışan benzer bir GitHub Enterprise yok. Bu nedenle bir PAT, kullanıcı adı ve parola veya OAuth kullanarak Azure Pipelines sunucu arasında GitHub Enterprise gerekir.
  • GitHub Azure Pipelines, dış Azure Pipelines katkıları doğrulamak için bir dizi güvenlik özelliği destekler. Örneğin, işlem hattında depolanan gizli diziler çalışan bir iş için kullanılabilir olmaz. Bu korumalar, bir sunucuyla GitHub Enterprise kullanılamaz.
  • Açıklama tetikleyicileri bir sunucuyla GitHub Enterprise kullanılamaz. bir işlem hattını tetiklemek için GitHub Enterprise sunucu depo çekme isteğinde açıklamalar kullanılamaz.
  • GitHub Denetimler, GitHub Enterprise kullanılamaz. Tüm durum güncelleştirmeleri temel durumlardan geçer.

Azure Pipelines'dan ulaşılamaz

Yukarıdaki bölümde açıklanan GitHub Enterprise Sunucu bağlantısının doğrulanması başarısız olduğunda, Azure Pipelines sunucunuzla iletişim kuramazsınız. Bunun nedeni büyük olasılıkla kurumsal ağın nasıl ayar olduğudır. Örneğin ağ güvenlik duvarı dış trafiğin sunucularınıza ulaşmasını önleyebilirsiniz. Bu durumda iki seçeneğiniz vardır:

  • Azure Pipelines ile GitHub Enterprise Server arasında bir ağ yolu açmak için GITHUB ENTERPRISE ile birlikte çalışabilirsiniz. Örneğin, güvenlik duvarı kurallarınıza özel durumlar ekerek güvenlik duvarı kurallarından gelen trafiğin Azure Pipelines izin veabilirsiniz. hangi IP adreslerine izin Azure DevOps ip adreslerine izin vermek için IP'ler bölümündeki bölüme bakın. Ayrıca, GitHub Enterprise Sunucusu için bir genel DNS girişinizin Azure Pipelines FQDN'sini bir IP adresine çözümleyesiniz. Tüm bu değişikliklerle birlikte, Azure Pipelines'de GitHub Enterprise Server bağlantısı oluşturma ve doğrulamayı Azure Pipelines.

  • GitHub Enterprise Server bağlantısı yerine Diğer Git bağlantısı kullanabilirsiniz. Bu Git sunucusuna Azure Pipelines'dan erişmeye çalış seçeneğinin işaretini Azure Pipelines. Bu bağlantı türüyle, yalnızca klasik derleme işlem hattı yapılandırabilirsiniz. CI ve PR tetikleyicileri bu yapılandırmada çalışmaz. Yalnızca el ile veya zamanlanmış işlem hattı çalıştırmalarını başlat.

Microsoft tarafından barındırılan aracılardan ulaşılabilir

Büyük olasılıkla vermeniz gereken bir diğer karar da işlem hatlarınızı çalıştırmak için Microsoft tarafından barındırılan aracıların mı yoksa kendi içinde barındırılan aracıların mı yoksa kendi içinde barındırılan aracıların mı kullanmak olduğu olabilir. Bu durum genellikle Microsoft tarafından barındırılan aracıların sunucunuza ulaşıp ulaşamaylarına neden olur. Kullanıp kullanamay olduklarını kontrol etmek için Microsoft tarafından barındırılan aracıları kullanmak üzere basit bir işlem hattı oluşturun ve sunucunuzdan kaynak kodu satın alma adımı ekleyin. Bu başarılı olursa Microsoft tarafından barındırılan aracıları kullanmaya devam edersiniz.

Microsoft tarafından barındırılan aracılardan ulaşılamaz

Yukarıdaki bölümde belirtilen basit test işlem hattı hatasıyla başarısız olursa, GitHub Enterprise Server'a Microsoft tarafından TF401019: The Git repository with name or identifier <your repo name> does not exist or you do not have permissions for the operation you are attempting barındırılan aracılardan ulaşılamaz. Bunun nedeni büyük olasılıkla bu sunuculardan gelen trafiği engelleyen bir güvenlik duvarıdır. Bu durumda iki seçeneğiniz vardır:

  • Microsoft tarafından barındırılan aracılar ile GitHub Enterprise Server arasında bir ağ yolu açmak için IT departmanınız ile birlikte çalışabilirsiniz. Microsoft tarafından barındırılan aracılarda ağ ile ilgili bölüme bakın.

  • Kendinden konak aracıları veya ölçek kümesi aracılarınıkullanmaya geçiş. Bu aracılar ağ içinde ayarlanır ve bu nedenle GitHub Enterprise Server'a erişime sahip olur. Bu aracılar yalnızca veri trafiğine giden Azure Pipelines. Gelen bağlantılar için güvenlik duvarı açmaya gerek yoktur. Sunucu bağlantısı oluşturulurken belirttiğiniz sunucunun adının, GitHub Enterprise barındırılan aracılardan çözümlenebilir olduğundan emin olun.

Azure DevOps IP adresleri

Azure Pipelines sunucuya şu GitHub Enterprise gönderir:

  • İşlem hattı oluşturma sırasında depo listesini sorgulama (klasik ve YAML işlem hatları)
  • İşlem hattı oluşturma sırasında mevcut YAML dosyalarını (YAML işlem hatları) bakma
  • YAML dosyalarını iade edin (YAML işlem hatları)
  • İşlem hattı oluşturma sırasında web kancası kaydetme (klasik ve YAML işlem hatları)
  • YAML dosyaları (YAML işlem hatları) için düzenleyiciyi sun
  • Yürütmeden önce şablonları çözümleme ve YAML dosyalarını genişletme (YAML işlem hatları)
  • Zamanlanan son çalıştırmadan (klasik ve YAML işlem hatları) sonra herhangi bir değişiklik olup ola
  • En son işlemeyle ilgili ayrıntıları getirme ve bunu kullanıcı arabiriminde (klasik ve YAML işlem hatları) görüntüleme

YAML işlem hatlarının Azure Pipelines GitHub Enterprise gerekir. Bu nedenle, GitHub Enterprise Server,GitHub Enterprise sunucusu tarafından görülemeyebilirse bir YAML işlem hattı Azure Pipelines.

Klasik bir işlem hattı ayarlamak, Azure Pipelines hizmeti ile GitHub Enterprise Server arasındaki iletişimi devre dışı bırakmak ve kod derlemek için kendi kendine barındırılan aracıları kullanmak için Diğer Git bağlantısını kullanırken, düzeyi düşürülmüş bir deneyim elde edin:

  • İşlem hattı oluşturma sırasında deponun adını el ile yazmanız gerekir
  • GitHub Enterprise Server'a web kancası kaydede Azure Pipelines olarak CI veya PR tetikleyicilerini GitHub Enterprise olamazsınız
  • Zamanlanmış tetikleyicileri yalnızca değişiklikler olduğunda derleme seçeneğiyle birlikte kullanılamaz
  • Kullanıcı arabiriminde en son işlemeyle ilgili bilgileri görüntüleyesiniz

YAML işlem hatlarını ayarlamak veya klasik işlem hatlarıyla deneyimi geliştirmek için, Azure Pipelines'dan GitHub Enterprise Server'a iletişimi etkinleştirmeniz önemlidir.

Azure DevOps'den gelen trafiğin GitHub Enterprise Sunucunuza ulaşacak şekilde izin vermek için, güvenlik duvarınıza gelen bağlantılarda belirtilen IP adreslerini veya hizmet etiketlerini güvenlik duvarınıza izin verme listesine ekleyin. ExpressRoute kullanıyorsanız, güvenlik duvarınıza izin verme listesine ExpressRoute IP aralıklarını da dahil etmek için emin olun.

SSS

Tümleştirmeyle GitHub Enterprise sorunlar aşağıdaki kategorilere ayrılır:

Başarısız tetikleyiciler

CI/PR tetikleyicileriyle yeni bir YAML işlem hattı oluşturdum ama işlem hattı tetiklenm yok.

Başarısız olan tetikleyicilerinizi gidermek için aşağıdaki adımların her birini izleyin:

  • YAML CI veya PR tetikleyicileri kullanıcı arabiriminde işlem hattı ayarları tarafından geçersiz kılınıyor mu? İşlem hattınızı düzenlerken ... ve ardındanTetikleyiciler'i seçin.

    İşlem hattı ayarları kullanıcı arabirimi.

    Deponuz için kullanılabilen tetikleyici türleri (sürekli tümleştirme veya çekme isteği doğrulama) için buradaki YAML tetikleyicisini geçersiz kıl ayarını kontrol edin.

    YAML tetikleyicisini buradan geçersiz kılın.

  • web kancaları GitHub Enterprise güncelleştirmeleri Azure Pipelines 'e iletmek için kullanılır. GitHub Enterprise, deponuzdaki ayarlara ve ardından web kancalarına gidin. Web kancalarının mevcut olduğunu doğrulayın. Genellikle iki Web kancası-push, pull_request görmeniz gerekir. Bunu yapmazsanız, hizmet bağlantısını yeniden oluşturmanız ve işlem hattını yeni hizmet bağlantısını kullanacak şekilde güncelleştirmeniz gerekir.

  • GitHub Enterprise web kancalarının her birini seçin ve kullanıcının yürütmeye karşılık gelen yükün Azure DevOps başarıyla gönderildiğini doğrulayın. Olayın Azure DevOps iletilemedi olması halinde burada bir hata görebilirsiniz.

  • Azure Pipelines GitHub bir bildirim aldığında, GitHub iletişime geçerek depo ve yaml dosyası hakkında daha fazla bilgi getirmeye çalışır. GitHub Enterprise sunucusu bir güvenlik duvarının arkasındaysa, bu trafik sunucunuza ulaşmayabilir. Azure DevOps ıp adresleri ' ne bakın ve tüm gerekli ıp adreslerine özel durumlar verildiğini doğrulayın. Bu IP adresleri, ilk olarak özel durum kurallarını ayarladıktan sonra değişmiş olabilir.

  • Ardışık düzen duraklatıldı veya devre dışı mı? işlem hattının düzenleyicisini açın ve ardından denetlemek için Ayarlar ' yi seçin. İşlem hattınız duraklatılmışsa veya devre dışıysa, Tetikleyiciler çalışmaz.

  • YAML dosyasını doğru dalda güncelleştirmiş musunuz? Bir dala güncelleştirme göndermeniz durumunda, aynı dalda bulunan YAML dosyası CI davranışını yönetir. Bir güncelleştirmeyi kaynak dalına dağıtırsanız, YAML dosyası kaynak dalı hedef dalı ile birleştirme işlemi, çekme isteği davranışını yönetir. Doğru daldaki YAML dosyasının gerekli CI veya PR yapılandırmasına sahip olduğundan emin olun.

  • Tetikleyiciyi doğru şekilde yapılandırdınız mı? Bir YAML tetikleyicisi tanımladığınızda, dallar, Etiketler ve yollar için hem dahil etme hem de dışlama yan tümceleri belirtebilirsiniz. Include yan tümcesinin işlemenizden ayrıntılarla eşleştiğinden ve exclude yan tümcesinin bunları dışiçermediğinden emin olun. Tetikleyicilerin sözdizimini denetleyin ve doğru olduğundan emin olun.

  • Tetikleyiciyi veya yolları tanımlarken değişkenler kullandınız mı? Bu desteklenmez.

  • YAML dosyanız için şablonlar mı kullanıyorsunuz? Varsa, tetikleyiclerinizin Main YAML dosyasında tanımlandığından emin olun. Şablon dosyaları içinde tanımlanan Tetikleyiciler desteklenmez.

  • Değişikliklerinizi gönderdiğiniz dalları veya yolları dışlıyorsunuz musunuz? Dahil edilen bir dalda bir değişikliği dahil eden yola göndererek test edin. Tetiklerde bulunan yolların büyük/küçük harfe duyarlı olduğunu unutmayın. Tetikleyicilere yollar belirtirken gerçek klasörlerle aynı durumu kullandığınızdan emin olun.

  • Yeni bir dal göndermi? Öyleyse, yeni dal yeni bir çalıştırma başlatılamayabilir. "Yeni dallar oluşturulduğunda tetikleyicilerinin davranışı" bölümüne bakın.

CI veya PR Tetikleyicileri sorunsuz şekilde çalışıyor. Ancak, şimdi çalışmayı durdurmuştur.

İlk olarak, önceki sorudaki sorun giderme adımlarına gidin. Ardından, şu ek adımları izleyin:

  • Çekme ortamınızda birleştirme çakışmalarıyla mı sahipsiniz? İşlem hattını tetiklemeyen bir çekme isteği için onu açın ve bir birleştirme çakışması olup olmadığını kontrol edin. Birleştirme çakışmasını çözün.

  • İtme veya çekme isteği olaylarının işlenmesinde bir gecikme mi yaşıyor musunuz? Bunu genellikle sorunun tek bir işlem hattına özgü olup olmadığını görebilir veya projenizdeki tüm işlem hatları veya depolarda ortak olduğunu görürsünüz. Depolardan herhangi birine yönelik bir gönderim veya bir PR Güncelleştirmesi bu belirtiyle karşılaşıyorsa, güncelleştirme olaylarını işlerken gecikmeler yaşanıyor olabilir. Durum sayfamızdabir hizmet kesintisi yaşanık olup olmadığını denetleyin. Durum sayfasında bir sorun varsa takımımız üzerinde çalışmaya başlamış olması gerekir. Sorun hakkındaki güncelleştirmeler için sayfayı sık sık denetleyin.

Kullanıma alma başarısız

Microsoft tarafından barındırılan aracılar mı kullanıyorsunuz? bu durumda, bu aracılar GitHub Enterprise sunucunuza erişebilmeyebilir. Daha fazla bilgi için bkz. Microsoft tarafından barındırılan aracılardan ulaşılamıyor .

Yanlış sürüm

Ardışık düzende YAML dosyasının yanlış bir sürümü kullanılıyor. Bunun nedeni nedir?

  • CI Tetikleyicileri için, dağıttığınız dalda olan YAML dosyası bir CI derlemesinin çalıştırılması gerekip gerekmediğini görmek için değerlendirilir.
  • PR Tetikleyicileri için, çekme isteğinin kaynak ve hedef dallarının birleştirilmesinden kaynaklanan YAML dosyası, bir PR derlemesinin çalıştırılması gerekip gerekmediğini görmek için değerlendirilir.