Groovy ve Docker ile Jenkins otomasyonu

1 dakika tahmini okuma süresi

Jenkins ve eklentilerin konfigurasyonu ve hatta Pipeline‘ların konfigurasyonu Groovy ile yapılabilir. init.groovy.d dizini JENKINS_HOME altında opsiyonel olarak yaratabileceğiniz bir dizindir. Bu dizine, eklentiler yüklendikten sonra ve jenkins hizmet vermeye başlamadan önce çalışmasını istediğiniz Groovy betiklerini yerleştirerek, Jenkins ve eklentilerin konfigurasyonu efektif bir şekilde yapabilirsiniz.

Groovy betiklerini yerleştirmek

Groovy betikleri asağıdaki yöntemler ile init.groovy.d dizini altına konabilir.

Docker volume kullanılarak

docker run --rm -ti -p 8080:8080 \
    -v $PWD/init.groovy.d:/var/jenkins_home/init.groovy.d \
    jenkins/jenkins:lts-alpine

Özel Docker yükü çıkartarak

Bu adım için, Jenkins‘in orijinal dosyalarını kopyalayıp güncellemek en basit yöntemlerden biridir.

İhtiyaç duyacağınız dosyalar (aslında sadece Dockerfile‘da değişiklik gerekli);

  1. Dockerfile
  2. install-plugins.sh
  3. jenkins-support
  4. jenkins.sh
  5. plugins.sh
  6. tini_pub.gpg
  7. tini-shim.sh

Groovy bektiklerini kopyalama adımı dizinin yaratıldığı adımdan hemen sonrasına konabilir.

RUN mkdir -p /usr/share/jenkins/ref/init.groovy.d

COPY groovy/* /usr/share/jenkins/ref/init.groovy.d/

Eklentilerin yönetimi

Bu yöntem ile ayrıca eklentilerin yüklenmesi otomatize edilebilir. Yapılaması gereken yukarıdaki dosyaların bulunduğu dizine, kullanılan eklentileri ve versiyonlarını içeren plugins.txt dosyası yaratmak ve Dockerfile‘da en sona aşağıdaki satıları eklemektir.

RUN chmod +x /usr/local/bin/plugins.sh
COPY plugins.txt plugins.txt
RUN /usr/local/bin/plugins.sh plugins.txt

Bu adım ile eklentiler docker build sırasında ile yüklenmiş olacak, build süresi ve docker imaj boyutu artacak olsa bile, Jenkins ilk kez çalıştırılırken artık eklentileri indirmeyecek ve çok daha hızlı isteklere yanıt vermeye başlayacaktır. Ve de eklenti versiyonlarının yönetimi kodlanmış olacaktır.

Her eklenti ekleme ve çıkarma için aşağıdaki adımlar uygulanmalıdır.

  1. Jenkins UI üstünden plugin eklenir ya da çıkarılır
  2. Groovy betiği ile güncel eklenti listesi Jenkins Script Console üzerinden alınır ve plugins.txt güncellenir.

Bu yukarıdaki adımlar ile, eklenti ekleme ve çıkarma işlemlerinde eksik veya artık bağımlılıklar yönetilmiş olur.

Dockerfile‘ın tam haline burdan erişilebilir.

Jenkins versiyonunu değiştirmek

ilk olarak Dockerfile’da Jenkins versiyon güncellenmeli

ENV JENKINS_VERSION ${JENKINS_VERSION:-<new-version>}

Sonra da ilgili versiyonun checksum’ı güncellenmelidir. Checksum’lara bu linkten ulaşilabilir.

ARG JENKINS_SHA=<new-checksum>

Groovy betiklerini hazırlama

Groovy betiklerinin bazıları ve parçaları internette bulunabilse de, en iyi kaynak Jenkins ve eklentilerin kaynak kod ve JavaDoc’ları. Eğer var ise eklentilerin test kodları da oldukça faydalı olabiliyor.

Örnek betiklerden bazıları:

Tüm betikler için.

Yorum yapın

Email adresiniz gösterilmeyecektir. Zorunlu alanlar işaretlenmiştir *

Yükleniyor...