AzureDevOps

Azure DevOps  Set up a Self-Hosted Agent on Ubuntu

Merhaba,

Azure DevOps üzerinde çalışan pipeline’ları On-Prem’de kurduğumuz Ubuntu üzerinde çalıştıracağız.
Normalde pipeline’lar Microsoft Hosted Agent üzerinde çalışıyor. Biz kendi ortamımızda kurduğumuz makinede pipeline sonrası bağımlı yazılımların kurulması ve hardware olarak da daha fazla kontrole sahip olmak için kullanacağız. Kurulum ve konfigürasyonlarını başlayalım.

Gereksinimler:
1-Ubuntu Virtual Machine
2-Azure DevOps Organization ve Project

Azure Devops proje settings > Agent Pools > Add Pool

-Aşağıdaki ekran da New Agent > Linux seçiyoruz. Ve “Download  the Agent” kısmında ki linki kopyalıyoruz.

-Yukarı daki ekran açık kalsın yan sekmeden Azure DevOps portal’e gidip  User Settings kısmında PAT (personal access token) oluşturacağız.

-Aşağıdaki gibi  bir token oluşturuyoruz key’i kaydediyoruz.

-Linux makinemize login oluyoruz
myagent isimli bir klasör oluşturup .tar uzantılı dosyayı download ediyoruz.

-Dosyayı extract ediyoruz

tar zxvf vsts-agent-linux-x64-3.218.0.tar.gz

-./config dosyasını çalıştırıyoruz.

-Bizden istenen bilgileri aşağıdaki gibi giriyoruz.

Enter server URL > https://dev.azure.com/omertunc61
Enter authentication type (press enter for PAT) >
Enter personal access token > **********
Enter agent pool (press enter for default) > ubuntu-onprem
Enter agent name (press enter for ubuntu-focal) >
Enter work folder (press enter for _work) >

-./run.sh scriptini çalıştırıyoruz ve agent hazır durumda.

-Azure DevOps portal’de Online olarak gözüküyor.

-Linux makinemiz restart olduktan sonra da servisin otomatik olarak başlaması için aynı dizinde bulunan svc.sh root olmadan çalıştırıyoruz.
sudo ./svc.sh install [username] ile çalıştırıyoruz
sudo ./svc.sh start ile start ediyoruz. Ve aşağıdaki gibi aktive durumda gözükecektir.

-Test amaçlı Dockerfile build edip ardından dockerhub üzerine push eden bir pipeline oluşturdum ve agent pool olarak on-prem’de bulunan makinemi seçtim.

-dockhub üzerinde bir service connection key oluşturdum ve aşağıdaki alana giriyorum.

-dockhub’da oluşturduğunuz access token’ı on-premdeki makine üzerinede eklemeniz gerekiyor fakat aşağıdaki gibi hata verirse yine bir alt satıra eklediğim komutu ekleyin

docker login -u onuromertunc
sudo chmod 666 /var/run/docker.sock

-Pipeline’da save-run diyorum on-prem makinemde consol ekranına job düştü ve işlem bittikten sonra successful çıktı.