Groovy ve Docker ile Jenkins otomasyonu
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);
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.
- Jenkins UI üstünden plugin eklenir ya da çıkarılır
- 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ı:
- Github eklenti konfigurasyonu
- NodeJs eklenti konfigurasyonu
- RBAC konfigurasyonu
- SonarQube eklenti konfigurasyonu
- Pipeline da dinamik içerikli dropdown menu kullanımı
- Pipeline da birbirine bağımlı dropdown menulerin kullanımı
Tüm betikler için.
Yorum yapın
Email adresiniz gösterilmeyecektir. Zorunlu alanlar işaretlenmiştir *