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ı.