Jenkins yazılım projelerimiz için build, test, deploy ve dağıtım ile ilgili her türlü görevi otomatize etmek için kullanılabilen Java tabanlı, açık kaynak kodlu bir otomasyon sunucudur. Java ile yazıldığı için de platform bağımsız olarak kullanılabilir.
Jenkins ile CI, CD süreçlerimizi otomatize bir şekilde yönetebiliriz. Geliştirmesini yaptığımız ürünümüz için devamlı olarak build alınması ve test edilmesi için kullanılabilmesi sayesinde geliştiriciler, yapılan değişiklikleri sürekli olarak sisteme aynı kalitede ve manuel yapılmasına kıyasla çok daha hızlı bir şekilde entegre edebilirler.
Jenkins’te Genel Kavramlar
Job: Jenkins’te otomatize edeceğimiz işlemler bütünü job altında toplanır. Örneğin git üzerinden klonla, maven build al, deploy et vs gibi yapacağımız işlemlerler bütününü job altında yönetiyoruz.
Node: Job’ların çalıştığı sunucuyu ifade eder. Bir çok sunucu üzerinde kurulu farklı Jenkins, master’a bir node olarak eklenerek farklı görevleri farklı node’larda çalıştırılmak amacıyla kullanılabilir.
Pipeline: Job içerisinde yapılacak işlemler burada tanımlanır. Pipeline içerisine ilgili komutları gireriz ve otomatize işlerimizi Job altında bir pipeline içerisinde tutarız.
Jenkins Kurulumu
Kurulum için buraya tıklayarak official dokümandan yararlanabilirsiniz. Benim kullanım sağladığım yöntem ise bir docker container içerisinde barındırıyor olmak. Peki Jenkins bir docker container olarak nasıl kurulur? Aşağıda Dockfile ve docker-compose.yml dosyalarını veriyor olacağım. Dosyaları oluşturduktan ve aynı konumda barındırdıktan sonra “docker-compose up -d” komutuyla çalıştırabilirsiniz. Arayüz erişimi içinse “http://localhost:8080” adresine gitmeniz yeterli olacaktır. Gerekli kurulum talimatlarını gerçeleştirerek kullanıma hazır hale getirebilirsiniz.
Dockerfile:
FROM jenkins/jenkins:jdk11 USER root RUN apt-get update && apt-get -y install ca-certificates curl gnupg lsb-release curl nano wget RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - \ && echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable" >> /etc/apt/sources.list.d/additional-repositories.list \ && echo "deb http://ftp-stud.hs-esslingen.de/ubuntu xenial main restricted universe multiverse" >> /etc/apt/sources.list.d/official-package-repositories.list \ && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 437D05B5 \ && apt-get update RUN curl -L "https://github.com/docker/compose/releases/download/v2.2.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose RUN chmod +x /usr/local/bin/docker-compose RUN apt-get update && apt-get -y install docker-ce docker-ce-cli containerd.io apt android-sdk maven gradle RUN chown -R jenkins /var/jenkins_home RUN usermod -aG docker jenkins USER jenkins
docker-compose.yml:
version: '3.5' services: jenkins: container_name: jenkins restart: unless-stopped privileged: true build: context: ./ dockerfile: ./Dockerfile ports: - "8080:8080" volumes: - "/var/run/docker.sock:/var/run/docker.sock"
Jenkins Nasıl Kullanılır: Süreci Adım Adım Anlatım
Jenkins, sürekli entegrasyon (CI) ve sürekli dağıtım (CD) süreçlerini otomatize etmek ve hızlandırmak için kullanılan popüler bir açık kaynaklı araçtır. Jenkins’i kullanarak yazılım projelerinizi daha verimli bir şekilde geliştirebilir, test edebilir ve dağıtabilirsiniz.
Adım 1: Kurulum
- Java Kurulumu: Jenkins, Java tabanlı bir uygulamadır, bu nedenle bilgisayarınızda Java’yı kurmanız gerekmektedir. Java 8 veya daha yeni sürümleri destekler. Oracle JDK veya OpenJDK gibi bir Java sürümü seçebilirsiniz.
- İndirme: Jenkins’i resmi web sitesinden indirin. İndirdiğiniz dosya, Jenkins’in çalıştırılabilir sürümünü içerir.
- Kurulum: İndirilen dosyayı çalıştırarak Jenkins’i kurun. Kurulum sihirbazı, Jenkins’in hangi portta çalışacağı ve başlangıçta kullanılacak parolanın belirlenmesi gibi ayarları yapmanıza olanak tanır.
- Başlatma: Kurulum tamamlandığında, Jenkins’i başlatmak için verilen komutu kullanın. Jenkins’in çalıştığına dair bir onay mesajı almalısınız.
- Web Arayüzüne Erişim: Tarayıcınızı açın ve
http://localhost:8080
veya Jenkins’in kurulu olduğu sunucunuzun IP adresi ve portu ile Jenkins web arayüzüne erişin. - Başlangıç Parolası: İlk erişim denemesinde Jenkins, başlangıç parolasını girmenizi isteyebilir. Bu parola, Jenkins’in ilk kullanıcı hesabı için oluşturulan geçici bir paroladır. Bu parolayı Jenkins’in konsol çıktısından veya belirtilen dosyadan alabilirsiniz.
- Gerekli Eklentilerin Yüklenmesi: İlk erişim denemesinde Jenkins, temel eklentileri yüklemenizi önerecektir. Bu eklentiler, Jenkins’in temel işlevselliğini artırır. Önerilen eklentileri yükleyin veya daha sonra ihtiyacınıza göre ekleyebilirsiniz.
Adım 2: Yapılandırma
- Ayarlar: Jenkins web arayüzünden “Manage Jenkins” seçeneğine gidin ve gerekli yapılandırmaları yapın. Bu, zaman dilimini ayarlama, e-posta bildirimlerini yapılandırma ve kullanıcı hesaplarını yönetme gibi işlemleri içerebilir.
- İstemcilerinin Yapılandırılması: Jenkins, işleri otomatik olarak çalıştırmak için kullanılan agent ve agent controller ile çalışabilir. Bu ayarları projenize göre yapılandırın.
Adım 3: İlk Projenizi Oluşturma
- Yeni Bir Proje Oluşturun: Ana sayfadan “New Item” (Yeni Öğe) seçeneğine tıklayarak yeni bir proje oluşturun. Jenkins, farklı proje türleri sunar, örneğin, serbest stil projeler, Pipeline projeleri, çoklu konfigürasyon projeleri vb.
- Proje Ayarlarını Yapın: Proje türüne bağlı olarak gerekli ayarları yapın. Örneğin, bir serbest stil proje oluşturuyorsanız, yapılandırmada yapı yapınızı ve işlemlerinizi belirleyin.
- Proje Çalıştırma: Projenizi kaydedin ve çalıştırın. Jenkins, projenizi oluşturacak ve sonuçları gösterecektir.
Adım 4: Sürekli Entegrasyon ve Dağıtım (CI/CD) Oluşturma
- CI/CD İşlemlerini Tanımlayın: Jenkins, otomatik olarak yapı, test ve dağıtım işlemleri oluşturmanıza yardımcı olabilir. “Pipeline” projeleri, bu tür süreçleri ayrıntılı olarak tanımlamak için güçlü bir araç sunar.
- Geliştirme ve Test: Projenizi düzenleyin ve değişikliklerinizi kaydedin. Jenkins, bu değişiklikleri otomatik olarak algılar ve CI/CD işlemlerini başlatır.
- Raporlama ve Uyarılar: Test sonuçları ve işlem raporlarını görüntülemenize yardımcı olur. Ayrıca başarısızlık durumlarında e-posta veya diğer uyarıları yapılandırabilirsiniz.
Adım 5: Projelerinizi Yönetme
- Proje Güncellemeleri ve Bakım: Projenizin gereksinimlerine göre düzenli olarak güncellemeler yapın ve bakım işlemlerini gerçekleştirin.
- Proje İzleme: Projelerin çalışma durumunu izlemenize ve herhangi bir sorunu hızla çözmenize yardımcı olur.