Azure DevOps Pipelines ile self-hosted sunucumuza CI/CD pipeline oluşturma (Agent Pool)
Merhaba, bu makalede kendi sunucumuzda barındırdığımız bir uygulama için Azure DevOps üzerinde pipeline oluşturma adımlarından bahsedeceğiz.
➀ Agent oluşturma adımları
🔷 PAT(Personel Access Token) Oluşturma
Azure DevOps’a giriş yaptığımızda aşağıda görülen açılır menüden token sayfasına gidiyoruz.
Yeni bir token oluşturuyoruz..
Burada oluşan token değerini not alınız!
🔷 Agent Pool Oluşturma
Azure DevOps’da ‘Organization settings’ menüsüne,
ardından ‘Agent pools’ alt menüsüne gidiyoruz.
Yeni bir pool oluşturulabilir veya Default pull üzerine tıklayarak “New Agent” ekranı açılır.
Biz şuan Linux üzerinde çalışıyoruz ve burada yer alan Download linkini kullanarak sunucumuzda agent oluşturmak için gerekli dosyaları indireceğiz. Diğer işletim sistemleri için de benzer şekilde işlem yapılıyor. Şimdi sunucu tarafına geçiyoruz..
🔷 Agent Pool Oluşturma
- Sunucuda agent için bir klasör oluşturuyoruz
mkdir azure-agent && cd azure-agent
- Dosyamızı indiriyoruz
wget https://vstsagentpackage.azureedge.net/agent/2.190.0/vsts-agent-win-x64-2.190.0.zip
- Zip’den çıkarıyoruz
tar zxvf vsts-agent-win-x64-2.190.0.zip
- Config scriptimizi çalıştırıyoruz, az önce oluşturduğumuz token’a burada ihtiyacımız var.
./config.sh
./run.sh
komutu ile agent manuel çalıştırılır. (Bu şekilde manuel çalıştırma test aşamasında kullanılabilir, bunu bir servis haline nasıl getireceğimiz aşağıdaki başlıkta yer almaktadır)
Eğer buraya kadar bir sorun ile karşılaşmamışsak, Azure DevOps’da oluşturduğumuz Agent Pool’un Agents menüsü altında agentı Online olarak görebiliriz.
🔷 Linux üzerinde Agent’ı servis olarak çalıştırma
- azure-agent dizinine aşağıdaki şekilde izin tanımlanmalı
sudo chown -R interpress001 azure-agent/
- svc.sh scripti kullanılarak servis kurulur ve başlatılır
sudo ./svc.sh install
sudo ./svc.sh start
sudo ./svc.sh status
Not: Ayrıca Agent bir docker container olarak da çalıştırılabilir.
➁ Pipeline oluşturma adımları
Azure DevOps üzerinde Pipelines menüsüne girip New Pipeline butonuna tıklıyoruz.
Açılan ekranda “Use the classic editor“ seçeneği ile ilerliyoruz.
Kaynak kodumuzu seçip açılan ekranda üstte yer alan “Empty job” seçeneği ile ilerliyoruz.
Açılan ekranda pipeline için bir isim veriyoruz ve Agent pool sekmesinde yeni oluşturduğumuz agent’ın bulunduğu Agent pool’u seçiyoruz.
Şimdi “+” işaretine tıklayarak pipeline’a bir task ekliyoruz.
Burada Azure DevOps Pipeline üzerinde çalışabilecek task çeşitleri listelenmekte. Kullandığımız ortam/sistem gereksinimlerimize göre task’larımızı seçerek pipeline çalıştığında projemizi derlemek ve yayınlamak için gerekli adımları tanımlıyoruz.
Örneğin aşağıdaki gibi bir bash script task’ı ekleyerek sunucumuzda komutlar çalıştırabiliriz.
Task çeşitleri hakkında bilgi edinmek için bu bağlantıyı inceleyebilirsiniz.
Ayrıca birden fazla agent oluşturup, burada tanımlayacağımız adımların hangi agent üzerinde çalışacağını belirterek birden fazla sunucu üzerinde aynı pipeline ile işlem yapabiliriz.