Azure Pipelines'da dağıtım gruplarını kullanarak Azure VM'lerini dağıtma
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Azure Pipelines'ın önceki sürümlerinde, birden çok sunucuya dağıtılması gereken uygulamalar için önemli miktarda planlama ve bakım gerekiyordu. Windows PowerShell uzaktan iletişiminin el ile etkinleştirilmesi, gerekli bağlantı noktalarının açılması ve sunucuların her birinde yüklü dağıtım aracıları olması gerekiyordu. Daha sonra dağıtım gerekiyorsa işlem hatlarının el ile yönetilmesi gerekiyordu.
Yukarıdaki tüm zorluklar, Dağıtım Gruplarının kullanıma sunulmasıyla sorunsuz bir şekilde gelişmiştir.
Dağıtım grubu, yapılandırılan gruptaki hedef sunucuların her birine bir dağıtım aracısı yükler ve yayın işlem hattına uygulamayı bu sunuculara aşamalı olarak dağıtmasını yönlendirir. Bir uygulamanın en son sürümünün yeni sunulan özelliklerin doğrulanması için birden çok kullanıcı grubuna aşamalı olarak teslim edilebilmesi için dağıtım dağıtımları için birden çok işlem hattı oluşturulabilir.
Not
Dağıtım grupları, Klasik işlem hatlarında kullanılan bir kavramdır. YAML işlem hatlarını kullanıyorsanız bkz . Ortamlar.
Bu öğreticide şunları öğrenirsiniz:
- Şablon kullanarak Azure'a VM altyapısı sağlama
- Azure Pipelines dağıtım grubu oluşturma
- Çözümü bir dağıtım grubuyla dağıtmak için CI/CD işlem hattı oluşturma ve çalıştırma
Önkoşullar
- Bir Microsoft Azure hesabı.
- Bir Azure DevOps kuruluşu.
Azure DevOps kuruluşunuzda öğretici projesini sağlamak için Azure DevOps Demo Oluşturucu'yu kullanın.
Azure dağıtım ortamını ayarlama
Arm şablonu kullanılarak Azure'da aşağıdaki kaynaklar sağlanır:
- IIS yapılandırılmış altı Sanal Makineler (VM) web sunucusu
- SQL server VM (DB sunucusu)
- Azure Ağ Yük Dengeleyici
Kaynak sağlamayı başlatmak için aşağıdaki Azure'a Dağıt bağlantısına tıklayın. Gerekli tüm bilgileri sağlayın ve Satın Al'ı seçin. Bu öğreticide yeniden kullanılmadıkları için izin verilen yönetici kullanıcı adları ve parolaların herhangi bir bileşimini kullanabilirsiniz. Env Ön Ek Adı , bu kaynakların genel olarak benzersiz adlarla oluşturulmasını sağlamak için tüm kaynak adlarına ön eklenmiştir. Kişisel veya rastgele bir şey kullanmayı deneyin, ancak doğrulama veya oluşturma sırasında bir adlandırma çakışması hatası görürseniz, bu parametreyi değiştirmeyi ve yeniden çalıştırmayı deneyin.
Not
Dağıtımın tamamlanması yaklaşık 10-15 dakika sürer. Adlandırma çakışması hataları alırsanız Env Ön Ek Adı için sağladığınız parametreyi değiştirmeyi deneyin.
Dağıtım tamamlandıktan sonra, Azure portalını kullanarak belirtilen kaynak grubunda oluşturulan tüm kaynakları gözden geçirebilirsiniz. Ayrıntılarını görüntülemek için adında sqlSrv bulunan DB sunucusu VM'sini seçin.
DNS adını not edin. Bu değer sonraki bir adımda gereklidir. Kopyala düğmesini kullanarak panoya kopyalayabilirsiniz.
Dağıtım grubu oluşturma ve yapılandırma
Azure Pipelines, uygulamaları dağıtmak için gereken sunucuları düzenlemeyi kolaylaştırır. Dağıtım grubu, dağıtım aracılarına sahip makinelerden oluşan bir koleksiyondur. Makinelerin her biri, uygulamanın dağıtımını koordine etmek için Azure Pipelines ile etkileşim kurar.
Derleme işlem hattı için gerekli yapılandırma değişikliği olmadığından, proje sağlandıktan sonra derleme otomatik olarak tetikleniyor. Daha sonra bir sürümü kuyruğa aldığınızda, bu derleme kullanılır.
Demo oluşturucu tarafından oluşturulan Azure DevOps projesine gidin.
İşlem Hatları'nın altından Dağıtım grupları'na gidin.
Dağıtım grubu ekle'yi seçin.
Yayın'ın Dağıtım grubu adını girin ve Oluştur'u seçin. Bir kayıt betiği oluşturulur. Kendi başınıza çalışıyorsanız sağlanan betiği kullanarak hedef sunucuları kaydedebilirsiniz. Ancak, bu öğreticide hedef sunucular yayın işlem hattının bir parçası olarak otomatik olarak kaydedilir. Yayın tanımı, uygulamayı hedef sunuculara dağıtmak için aşamaları kullanır. Aşama, görevlerin yürütüleceği çalışma zamanı hedefini tanımlayan görevlerin mantıksal bir gruplandırılmasıdır. Her dağıtım grubu aşaması, dağıtım grubunda tanımlanan makinelerde görevleri yürütür.
İşlem Hatları'nın altında Yayınlar'a gidin. Dağıtım Grupları adlı yayın işlem hattını seçin ve Düzenle'yi seçin.
İşlem hattındaki dağıtım görevlerini görüntülemek için Görevler sekmesini seçin. Görevler Aracı aşaması, Dağıtım grubu aşaması ve IIS Dağıtım aşaması olarak adlandırılan üç aşama olarak düzenlenir.
Aracı aşamasını seçin. Bu aşamada, hedef sunucular Azure Kaynak Grubu Dağıtım görevi kullanılarak dağıtım grubuyla ilişkilendirilir. Çalıştırmak için bir aracı havuzu ve belirtim tanımlanmalıdır. Azure Pipelines havuzunu ve windows-latest belirtimini seçin.
Azure Kaynak Grubu Dağıtımı görevini seçin. Altyapı oluşturmak için daha önce kullanılan Azure aboneliğine bir hizmet bağlantısı yapılandırın. Bağlantıyı yetkiledikten sonra bu öğretici için oluşturulan kaynak grubunu seçin.
Bu görev Azure'da barındırılan sanal makinelerde çalışır ve dağıtım grubu gereksinimlerini tamamlamak için bu işlem hattına geri bağlanabilmesi gerekir. Bağlantının güvenliğini sağlamak için bir kişisel erişim belirteci (PAT) gerekir. Kullanıcı ayarları açılan listesinden Kişisel erişim belirteçlerini yeni bir sekmede açın. Çoğu tarayıcı, sağ tıklama bağlam menüsü veya Ctrl+Tıklama yoluyla yeni bir sekmede bağlantı açmayı destekler.
Yeni sekmesinde Yeni Belirteç'i seçin.
Bir ad girin ve Tam erişim kapsamını seçin. Belirteci oluşturmak için Oluştur'u seçin. Oluşturulduktan sonra belirteci kopyalayın ve tarayıcı sekmesini kapatın. Azure Pipeline düzenleyicisine dönersiniz.
Azure Pipelines hizmet bağlantısı'nın altında Yeni'yi seçin.
Geçerli Azure DevOps örneğinin Bağlan ion URL'sini girin. Bu URL, gibi
https://dev.azure.com/[Your account]
bir şeydir. Daha önce oluşturulan Kişisel Erişim Belirtecini yapıştırın ve bir Hizmet bağlantı adı belirtin. Doğrula ve kaydet'i seçin.Not
Aracıyı kaydetmek için aracı havuzundaki Yönetici istrator rolünün üyesi olmanız gerekir. Aracı havuzu yöneticisinin kimliği yalnızca kayıt sırasında gereklidir. Yönetici kimliği aracıda kalıcı değildir ve aracı ile Azure Pipelines arasındaki sonraki iletişimlerde kullanılmaz. Aracı kaydedildikten sonra, kişisel erişim belirtecini yenilemeye gerek yoktur çünkü yalnızca kayıt sırasında gereklidir.
Geçerli Takım projesini ve daha önce oluşturulan Dağıtım grubunu seçin.
Dağıtım grubu aşama aşamasını seçin. Bu aşama, dağıtım grubunda tanımlanan makinelerde görevleri yürütür. Bu aşama SQL-Svr-DB etiketine bağlıdır. Açılan listeden Dağıtım Grubunu seçin.
IIS Dağıtım aşaması aşamasını seçin. Bu aşama, belirtilen görevleri kullanarak uygulamayı web sunucularına dağıtır. Bu aşama WebSrv etiketine bağlıdır. Açılan listeden Dağıtım Grubunu seçin.
Azure Ağ Yük Dengeleyici bağlantısını kes görevini seçin. Hedef makineler NLB'ye bağlı olduğundan, bu görev dağıtımdan önce makinelerin NLB bağlantısını keser ve dağıtımdan sonra yeniden NLB'ye bağlar. Görevi Azure bağlantısını, kaynak grubunu ve yük dengeleyiciyi kullanacak şekilde yapılandırın (yalnızca bir tane olmalıdır).
IIS Web Uygulaması Yönet görevini seçin. Bu görev, görev/aşama için yapılandırılmış dağıtım grubuna kayıtlı dağıtım hedef makinelerinde çalışır. 80 numaralı bağlantı noktası altında PartsUnlimited adıyla yerel olarak bir web uygulaması ve uygulama havuzu oluşturur
IIS Web Uygulaması Dağıtma görevini seçin. Bu görev, görev/aşama için yapılandırılmış dağıtım grubuna kayıtlı dağıtım hedef makinelerinde çalışır. Web Dağıtımı'nı kullanarak uygulamayı IIS sunucusuna dağıtır.
Bağlan Azure Ağ Yük Dengeleyici görevini seçin. Görevi Azure bağlantısını, kaynak grubunu ve yük dengeleyiciyi kullanacak şekilde yapılandırın (yalnızca bir tane olmalıdır).
Değişkenler sekmesini seçin ve değişken değerlerini aşağıdaki gibi girin.
Değişken Adı Değişken Değeri DatabaseName PartsUnlimited-Dev DBPassword P2ssw0rd@123 DBUserName sqladmin Varsayılan Bağlan ionString Veri Kaynağı=[YOUR_DNS_NAME]; Initial Catalog=PartsUnlimited-Dev; Kullanıcı Kimliği=sqladmin; Password=P2ssw0rd@123; MultipleActiveResultSets=False; Bağlan ion Timeout=30; aboneliğinde ve localhost Önemli
Default Bağlan ionString değişkeninde SQL server DNS adınızı (daha önce Azure portalından not ettiğiniz) değiştirdiğinizden emin olun.
Default Bağlan ionString'iniz SQL DNS'sini değiştirdikten sonra bu dizeye benzer olmalıdır:
Data Source=cust1sqljo5zndv53idtw.westus2.cloudapp.azure.com;Initial Catalog=PartsUnlimited-Dev;User ID=sqladmin;Password=P2ssw0rd@123;MultipleActiveResultSets=False;Connection Timeout=30;
Son değişken listesi şöyle görünmelidir:
Not
Değişkenin
DefaultConnectionString
gizli dizi olarak kaydedilmesi gerektiğini belirten bir hata alabilirsiniz. Böyle bir durumda değişkeni seçin ve değerini korumak için değerinin yanında görünen asma kilit simgesine tıklayın.
Yayını kuyruğa alma ve dağıtımı gözden geçirme
Kaydet'i seçin ve onaylayın.
Yayın oluştur'u seçin ve onaylayın. İşlemin tamamlanması için yayını takip edin. Dağıtım daha sonra gözden geçirılmak üzere hazır olur.
Azure portalında, kaynak grubunuzdaki web VM'lerinden birini açın. Adında olan
websrv
herhangi birini seçebilirsiniz.VM'nin DNS'sini kopyalayın. Azure Load Balancer, gelen trafiği yük dengeli bir kümede tanımlanan sunucuların iyi durumdaki örnekleri arasında dağıtır. Sonuç olarak, tüm web sunucusu örneklerinin DNS'i aynıdır.
VM'nin DNS'sine yeni bir tarayıcı sekmesi açın. Dağıtılan uygulamanın çalıştığını onaylayın.
Özet
Bu öğreticide, Azure Pipelines ve Dağıtım Gruplarını kullanarak bir web uygulamasını bir dizi Azure VM'sine dağıttınız. Bu senaryo birkaç makineyi kapsasa da, neredeyse tüm yapılandırmaları kullanarak yüzlerce, hatta binlerce makineyi destekleyecek şekilde sürecin ölçeğini kolayca artırabilirsiniz.
Kaynakları temizleme
Bu öğretici, Azure'da bir Azure DevOps projesi ve bazı kaynaklar oluşturmuştur. Bu kaynakları kullanmaya devam etmeyecekseniz, aşağıdaki adımları izleyerek bunları silin:
Azure DevOps Demo Oluşturucu tarafından oluşturulan Azure DevOps projesini silin.
Bu öğretici sırasında oluşturulan tüm Azure kaynakları oluşturma sırasında belirtilen kaynak grubuna atanmıştır. Bu grubun silinmesi, içerdikleri kaynakları siler. Bu silme işlemi CLI veya portal üzerinden yapılabilir.