Azure DevOps'da CI / CD Pipeline Kullanımı [Bölüm 3]

5 dakikada okunur

Bölüm 1'de, bir Microsoft hesabı oluşturup Azure DevOps ortamına giriş yaptık. Ardından, Visual Studio'da bir ASP.NET Core Web Projesi oluşturarak projeyi Azure DevOps'taki master branch'ine gönderdik.
Bölüm 2'de, CI sürecini YAML yerine klasik yöntemle yapacak şekilde ayarları tamamlayıp, CI pipeline'ını oluşturduk ve sunucumuza agent kurulumumuzu gerçekleştirdik.

Şimdi, Azure Pipeline'da CD sürecini oluşturacağız. Öncelikle, kurulum yapacağım IIS sunucusuna agent kurulumunu gerçekleştireceğim. Azure DevOps'ta, bu sefer Pipelines sekmesinin altındaki Deployment Groups sayfasına gidiyorum ve "Add a Deployment Group" butonuna tıklıyorum.

Deployment Group adını girip "Create" butonuna tıklıyorum.

Sağ tarafta, PowerShell'e girilebilecek bir script görüntülenecek. Bu script'i kopyalıyorum ve yönetici yetkisiyle açtığım PowerShell'e yapıştırıyorum.

Script çalıştıktan sonra, sistem sürücüsünün (varsayılan olarak C'dir) altında azagent klasörü oluşturulacak ve ilgili agent dosyaları bu klasöre yerleştirilip config.cmd çalıştırılacak.

CI agent'ında yaptığımız gibi burada da personal access token (PAT) kullanacağız.

Bu sefer, oluşturacağım token için sadece "Deployment Groups" yetkisini vereceğim.

Token'ı girdikten sonra, agent için bir etiket (tag) girmem istenecek. Daha sonra bu etiketlemeyi yapacağım için şimdilik 'n' yazıp devam ediyorum.

Sunucum, test.yekta.web.tr isimli deployment group altında Targets sekmesine gelecektir. Burada Tags altında agent'ıma "IISDeploy" etiketini ekliyorum. Ardından "Save" butonuna tıklayarak IIS için agent kurma işlemimi tamamlıyorum.

Şimdi, CD sürecim için pipeline oluşturabilirim. Bu sefer Release sayfasına geliyorum ve "New Pipeline" butonuna tıklıyorum.

Burada "Empty Job" seçeneğiyle devam edeceğim.

Stage adı olarak IIS Deploy giriyorum.

Stage adını verdikten sonra, sol tarafta bulunan Artifacts bölümünden CI sürecinde oluşturduğumuz pipeline'ı seçeceğiz. Hatırlarsanız, en son "Publish Build Artifact" görevini ekleyip işlemi bitirmiştik.

Artifacts seçimi için bir pencere açılacak. CI pipeline'ımı seçip "Add" butonuna tıklıyorum.

Şimdi, stage için görevler ekleyebilirim. Yukarıdaki sekmelerden Tasks sekmesine gelip IIS Deploy stage'ini seçiyorum.

Buradaki pipeline, deployment group job olacağı için, IIS Deploy'un en sağındaki üç noktaya tıklayıp "Add a Deployment Group Job" seçeneğini seçiyorum.

Deployment group job'ım aşağıya gelecek, ancak önce Agent Job'ı listeden kaldırıyorum.

Deployment group job'ına gelerek ilgili ayarları yapıyorum. Deployment group olarak oluşturduğum test.yekta.web.tr grubunu seçiyorum ve bu grup içerisindeki etiketlediğim makineyi "Required Tags" alanına ekliyorum.

Job için gerekli görevleri ekliyorum. "+" butonuna tıklayıp sırasıyla "Manage IISWebsite" ve "Deploy IIS Website/App" görevlerini ekliyorum.

Manage IISWebsite görevindeki ayarları IIS'deki bilgilerle aynı yapıyorum. Website adımı IIS'de test.yekta.web.tr, burada da "test.yekta.web.tr" olarak belirliyorum. Physical path’im "%SystemDrive%\inetpub\test.yekta.web.tr", burada da aynı şekilde ayarlıyorum. "Action" seçeneğim "Create or Update" olduğu için binding eklemeliyim. Bu sebeple "Add Binding" tikini seçip IIS Bindings ayarlarımı yapıyorum.

Deploy IIS Website/App görevimde, Website Name'i girip "Take App Offline" tikini seçiyorum.

Daha sonra "Save" butonuna tıklayıp çıkıyorum. Windows Server sunucumuzdaki IIS'e Azure üzerinden deploy işlemi için CD pipeline oluşturma işlemi bu kadar.
Fakat, bu pipeline'ın tetiklenmesi için bir ayar daha yapmalıyız. Pipeline sekmesine gittikten sonra, artifact'imizin üzerindeki trigger ikonuna tıklıyorum ve sağ tarafta açılan pencerede "Continuous Deployment Trigger" seçeneğini "Enabled" durumuna getiriyorum.

Tekrar "Save" butonuna tıklayarak CD sürecini tamamlıyorum.

Bu işlemler sonucunda, Visual Studio programından master branch'e push gönderdiğimde CI pipeline'ım tetiklenecek. Tetikleme ile build işlemi başlayacak ve build sorunsuz çalıştıktan sonra bir artifact oluşacak. Bu artifact'in oluşmasıyla CD pipeline'ım tetiklenecek ve bu artifact'i alarak IIS sunucusuna deploy edecek.

CD sürecini CI sürecinde olduğu gibi Release sayfasından takip edebilirsiniz. CD pipeline'ı tetiklendikten sonra Stages altındaki IISDeploy stage'ine tıklayın.

Deployment group job durumuna tıklayarak taskların sonuçlarını görebilirsiniz.

Burada taskların sonuçlarını görebilirsiniz.

Azure DevOps kullanarak bir ASP.NET Core projesinin CI/CD süreçlerini nasıl yapılandırabileceğimizi adım adım ele aldık. İlk olarak Azure DevOps'a giriş yapıp projeyi master branch'e gönderdik, ardından build işlemleri için bir sunucuya agent kurduk ve CI pipeline yapılandırdık. Son olarak, IIS sunucusuna deployment için agent kurduk, CD pipeline yapılandırdık.
Bu adımları izleyerek projelerinizi Azure DevOps ile kolayca otomatikleştirebilirsiniz.

yekta.web.tr


Takip Et