Jenkins Node Agent Yükleme
Merhabalar,
Bu yazımda var olan Jenkins’imize node agent kurulumu inceliycez. Bu agentlar;
- Jenkins kurulu olduğu 192.168.1.9 “master-agent-java” isminde
- Başka bir VM’deki makineye 192.168.1.2 “slave-agent-netcore” isiminde iki tane agent kurulu gerçekleştircez.
Eğer localinizde jenkins kurulu değil ise diğer yazımından kuruluma okuyabilirsiniz.
Ilk olarak Jenkins kurulu olduğu makineye master-agent-java adında bir agent kuralım. Bunun için ilk olarak bir tane ssh keygen oluşturuyoruz. Jenkins kurulu olduğu makine üzerine ilk agent kuracağımız için java kurulu ve jenkins isminde sudo yetkisine sahip bir kullanacımız mevcuttur. Şimdide jenkins’in kurulu olduğu master olarak belirlediğimiz node’dan bir tane ssh keygen oluşturalım Bunun için,
su - jenkins
ssh-keygen -t rsa -b 2048 -C "adding node agent for jenkins"
Node bağlanmak ssh keygen’imiz oluştu.
- id_rsa -> private key
- id_rsa.pub -> public key
Şimdide bu ssh key ile bir tane global credentials oluşturalım. Bunun Jenkins UI’dan;
- Manage jenkins -> Global credentials geçip Add credentials diyoruz.
- Kind: SSH Username with private key
- Scope: Global
- Username: jenkins
- Private key: Jenkins kullanıcıs ile oşuturduğumuz ssh keygendeki id_rsa alıyoruz.
Evet böylece bir tane global tipinde credentials oluşturduk.
Buradan sağ menüden Manage jenkins ordan da Manage and Cloud Nodes geçiyoruz.
Görüldüğü gibi şuan sadece Jenkins kurulu olduğundaki Build Node aktif. New node deyerek bir agent node oluşturmaya başlayalım. Burada ki keyword’leri biraz bahsetmek gerekirse,
- Name: Node’unuza bir tane isim belirliyorsunuz.
- Permanent Agent: Node kalıcı olark işaretliyoruz.
- Number of executors: Burası biraz önemli seçtiğiniz executers ilk oluşan build Node executer sayısından az olmak zorundadır. Aslında bildiğiniz makinenin kaç core kullanacağını belirliyorsunuz.
- Remote root directory: Jenkins oluşturacağı build ( .jar ) dosyaları burada belirlediğiniz folder altına gerçekleşecektir.
- Labels: Agent bilgilendirme label’ı giriyoruz.
- Usage: İki seçenek mevcuttur. Biri node her türlü kullanmak için. ikincisi ise bir label ile eşleştiğinde pipeline koşmasıdır. bir ikinci metot ile ilerliycez.
- Launch method: Ssh ile ilerliyceğimiz için ssh seçiyoruz.
Şeçtikten sonra karşımıza böyle bir ekran gelmektedir.
- Host: Hostname yada IP adresi
- Credentials ise bir tane oluşturmamız gerekiyor. Add butonu ile oluşturalım.
Passphrase: Kısmında ise bizden bir password istiyor ama biz ssh keygen oluşturduğumuzda password belirtmediğimiz için bu alanı boş geçiyoruz.
Evet görüldüğü gibi ilk agent bağlandı.
Şimdi de farklı bir VM’deki node agent kuralım ama öncesinde bir jenjins user ve java’nın yüklü olması grekmektedir.
sudo apt install software-properties-common apt-transport-https -y
sudo add-apt-repository ppa:openjdk-r/ppa -y
sudo apt-get install -y openjdk-11-jdk
java --version
Jenkins user oluşturalım.
sudo adduser jenkins
sudo adduser jenkins sudo
id jenkins
Şimdide master olarak kullandığımız node’dan ssh keygen kopyalayalım bunun için,
Note: Masterdan agent kurulu olacağı node.
ssh-copy-id jenkins@192.168.1.2
Keygen kopyaladıktan sonra Jenkins UI’dan bir tane node ekliyoruz.
ve
Gerekli bilgileri girdikten sonra. agent loglarına baktığımızda,
Bağlantı kurulduğu gözükmektedir.
Bu yazımızın da sonuna gelmiş bulunmaktayız. Araştırmalarım ve sektörde karşılaştığım senaryolar üzerine yazılarımı yazmaya devam edeceğim. Umarım faydalı bir yazı olmuştur. Yazımı okuduğunuz için teşekkürler.
Referanslar;