2024-12-16DevOpsN Team

Ubuntu Üzerinde Jenkins Kurulumu: CI/CD Yapılandırma Rehberi

JenkinsDevOpsCI/CDUbuntuLinux
U

Ubuntu Üzerinde Jenkins Kurulumu: CI/CD Yapılandırma Rehberi

Laravel, Node.js veya herhangi bir backend projesi için bir CI/CD iş akışı oluşturuyorsanız, Jenkins yığınınıza ekleyebileceğiniz en güvenilir otomasyon araçlarından biridir. Jenkins ile en son kodu çekmekten, testleri çalıştırmaya, artifact'leri derlemekten uygulamanızı dağıtmaya kadar her şeyi otomatikleştirebilirsiniz. Kısacası, tekrarlayan görevlere daha az, kod yazmaya daha çok odaklanmanızı sağlar.

Bu rehberde, bir Ubuntu sunucusuna Jenkins'in nasıl kurulacağını, düzgün bir şekilde yapılandırılacağını, doğru portların nasıl açılacağını ve tarayıcınızdan Jenkins paneline nasıl erişeceğinizi öğreneceksiniz.

1. Jenkins Nedir?

Jenkins, CI/CD iş akışınızı kolaylaştırmak için oluşturulmuş bir otomasyon sunucusudur. Geliştiricilerin genellikle manuel olarak yaptığı görevleri üstlenir:

  • Git'ten en son kodu çekmek
  • Testleri çalıştırmak
  • Uygulamaları derlemek
  • Prodüksiyon veya staging ortamlarına dağıtım yapmak
  • Hizmetleri yeniden başlatmak

Kurulum tamamlandıktan sonra, DevOps süreçlerinizin bir parçası olarak her yeni kod gönderdiğinizde tüm dağıtım hattınızı otomatik olarak çalıştırabilir.

2. Başlamadan Önce: Sunucu Gereksinimleri

Bu eğitim için şunlara sahip olduğunuzdan emin olun:

  • Ubuntu Sunucusu (22.04 veya 24.04)
  • SSH erişimi
  • Java (Jenkins için gereklidir)

Öncelikle sunucunuzu güncelleyin:

sudo apt update

Ardından Java'yı kurun:

sudo apt install fontconfig openjdk-17-jre -y

Java hazır olduğunda Jenkins kurulumuna geçebilirsiniz.

3. Resmi Jenkins Deposunu Ekleme

Jenkins, Ubuntu'nun varsayılan depolarında bulunmaz, bu yüzden Jenkins deposunu manuel olarak eklemeniz gerekir.

Depo anahtarını ekleyin:

curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee \
  /usr/share/keyrings/jenkins-keyring.asc > /dev/null

Jenkins deposunu ekleyin:

echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]" \
  https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
  /etc/apt/sources.list.d/jenkins.list > /dev/null

Jenkins'i Kurun:

sudo apt update
sudo apt install jenkins -y

Jenkins'i Başlatın:

sudo systemctl start jenkins
sudo systemctl enable jenkins

Jenkins'in çalışıp çalışmadığını kontrol edin:

sudo systemctl status jenkins

Durum "active (running)" olarak görünüyorsa kurulum başarılıdır.

4. Jenkins Port Erişimini Doğrulama

Varsayılan olarak Jenkins 8080 portunda çalışır. Servisin dinlemede olduğunu doğrulamak için:

sudo ss -tulpn | grep 8080

Şuna benzer bir çıktı görmelisiniz:

LISTEN ... 0.0.0.0:8080

Bu, Jenkins'in bağlantıları kabul etmeye hazır olduğu anlamına gelir.

5. Tarayıcıdan Jenkins'e Erişim

Tarayıcınızı açın ve şuraya gidin: http://SUNUCU-IP-ADRESINIZ:8080

"Unlock Jenkins" sayfasını görüyorsanız her şey yolunda demektir.

6. İlk Yönetici Şifresini Alma

Jenkins, sunucunuzda saklanan tek seferlik bir yönetici şifresi gerektirir. Şifreyi almak için:

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

Oluşturulan şifreyi kopyalayın, web arayüzüne yapıştırın ve önerilen eklenti kurulumuyla devam edin. Docker ve Kubernetes entegrasyonları için gerekli eklentileri daha sonra da kurabilirsiniz.

7. Jenkins'e Erişemiyorsanız Ne Yapmalısınız?

Bu, özellikle AWS EC2 veya katı güvenlik duvarı kuralları kullanan VPS sağlayıcılarında en yaygın sorundur.

A. AWS Güvenlik Gruplarında 8080 Portunu Açın

Eğer Amazon EKS veya EC2 kullanıyorsanız, Security Group ayarlarından gelen (inbound) bir kural ekleyin:

  • Type: Custom TCP
  • Port: 8080
  • Source: 0.0.0.0/0 (veya güvenliğiniz için sadece kendi IP'niz)

B. UFW ile 8080 Portuna İzin Verin

Eğer sunucuda UFW aktifse:

sudo ufw allow 8080
sudo ufw reload

Her iki güvenlik duvarı katmanını güncelledikten sonra Jenkins hemen erişilebilir olmalıdır.

8. (İsteğe Bağlı) Varsayılan Jenkins Portunu Değiştirme

Başka bir servis 8080 portunu kullanıyorsa, bunu değiştirebilirsiniz:

sudo nano /etc/default/jenkins

HTTP_PORT=8080 satırını HTTP_PORT=8081 (veya istediğiniz bir port) olarak değiştirin ve servisi yeniden başlatın:

sudo systemctl restart jenkins

Artık Jenkins'e http://SUNUCU-IP-ADRESINIZ:8081 adresinden erişebilirsiniz. Yeni portu güvenlik duvarından açmayı unutmayın.