Jenkins CI-CD Adımları Nasıl Yönetilir?
Jenkins Üzerinde CI-CD Yönetimi. Bugün sizlerle Github’da bulunan bir projemizin Jenkins üzerinde CI/CD adımlarını yönetmekten bahsedeceğiz. Daha önceden kurulum yaptığımız bir Jenkins üzerinde pipeline hazırlayarak adımlarımızı tamamlayacağız.
Pipeline oluşturma
İlk olarak Jenkins üzerinde bir pipeline oluşturuyoruz. Bunun için önce yeni öğe diyerek yeni öğe oluşturma ekranını açıyoruz.
Resim-1
Daha sonra yeni öğe ekleme ekranında projemizin adını girip seçeneklerden de Pipeline seçiyoruz ve OK diyerek devam ediyoruz.
Resim-2
Karşımıza çıkan Configure sayfasında Pipeline alanına geliyoruz ve burada kullanılacak Github projesinin bilgilerini giriyoruz. Definition alanını Pipeline script from SCM seçeneği yapıyoruz ve SCM kısmını Git seçeneği yapıyoruz. Daha sonra karşımıza daha sonra karşımız Repository, Credentials, Branch vb. bilgileri dolduracağımız alan geliyor. Burayıda bizim Github bilgilerimize göre dolduruyoruz. En sonda Script Path olarak Github projesinin içindeki kullanılacak Jenkinsfile dosyasının adını veriyoruz.
Resim-3
Credential oluşturmak için Add butonuna basıp Jenkins seçeneğini seçiyoruz. Daha sonra karşımıza çıkan Add Credentials bölümünden Username, Password vb. bilgileri Github bilgilerimiz ile doldurarak yeni bir Credential oluşuruyoruz.
Resim-4
Resim-5
Şuan Jenkins Pipeline kullanıma hazır. Hatırlayacağınız gibi Configure ederken Script Path olarak Jenkinsfile verdik. Bunun için Github projemiz içinde Jenkinsfile adında bir Jenkins dosyası yapacağız. Bu dosya içinde Pipeline çalıştırdığımız zaman yapılacak adımlar olacak. Şimdi o Jenkinsfile hazırlamasına geçelim.
Jenkinsfile hazırlanması
İlk adımımız Docker Build adımı olacak. Burada Github projemiz içindeki Dockerfile’a göre build olup bize bir image oluşturacak. Bunun için aşağıdaki adımı Jenkinsfile içine yerleştirmek gerekmektedir.
Resim-6
Burada hasanertenli13 klasörünün altında latest tagını kullanan bir jenkins isimli image oluşturuyor. hasanertenli13 klasörü burada kullandığımız DockerHub kullanıcı adımız.
İkinci adımımız ise Docker Push adımı olacak. Burada oluşturduğumuz image’ı önce Dockerhub tarafında bulunan hesabımıza bağlanıp daha sonra oradaki repository kısmımıza atıyoruz. Bunun için aşağıdaki adımı Jenkinsfile içime yerleştiriyoruz.
Resim-7
Burada ilk başta DockerHub’a login oluyoruz ve daha sonrada docker push komutu ile image’ı DockerHub repositorysine gönderiyoruz. User ve Password bu adımda parametrik olarak verilmiştir. Bu parametreleri Jenkins üzerinde oluşturduğumuz Pipeline’da Configure alanında vereceğiz. Bunun için aşağıdaki adımları takip edebilirsiniz.
Resim-8
Resim-9
Resim-10
Password için Password Parametre seçiyorsunuz.
Resim-11
Son adım olarak ise Docker Start adımını yapıyoruz. Burada ilk başta image’ı çalıştıracağımız sunucuya bağlanıyoruz. Daha sonra DockerHub repositorysine bağlanıp çalıştıracağımız image’ı indiriyoruz. Daha sonra da docker run komutu ile image’ı çalıştırıyoruz. Bunun için aşağıdaki adımı Jenkinsfile tarafına ekliyoruz.
Resim-12
Burada ilk başta sshpass uygulaması ile sunucuya login oluyoruz. Bu uygulama ile kısayoldan şifremizi girerek şifre sormadan sunucuya bağlanmamızı sağlıyor. Daha sonra login olup image indirmesini yapıyoruz. Daha önceki çalışan container’ı durdurup siliyoruz. Durdurma ve silme adımını ilk kez çalıştırmada yorum satırına almalısınız ki hata vermesin. Daha sonrada gerekli bilgileri girerek docker run komutu ile container’ı çalıştırıyoruz.
Jenkinsfile’ın son halini aşağıda görebilirsiniz.
Resim-13
Önemli Not: Bu Jenkinsfile’ın sağlıklı bir şekilde çalışabilmesi için Jenkins sunucusuna docker kurulumu yapılmalıdır ve jenkins user’ına docker yetkisi verilmelidir.
Jenkins CI-CD adımları son ayarlar
Artık Pipeline çalıştırabilecek durumdayız. Bunun için jenkins adında oluşturduğumuz Pipeline’a giriyoruz.
Resim-14
Daha sonra Build with Parameters butonuna basarak Parametre sayfasına geçiyoruz.
Resim-15
Eğer parametre bilgilerini değiştirmek istersek bu adımda değiştirebiliriz. Herşey tamamlandıktan sonra Yapılandırma diyerek Pipeline’ı başlatıyoruz.
Resim-16
Tüm adımlar tamamlandıktan sonra docker’ı çalıştırdığımız sunucuya giderek kontrol ediyoruz.
Resim-17
Resim-18
Tüm işlemler tamamlandı. Bu image’ı 3000 portunda çalıştırdığımız için {Sunucu_ipsi}:3000 adresini tarayıcı açarak kontrol ediyoruz.
Resim-19
Görüldüğü gibi sıkıntısız bir şekilde Jenkins CI-CD adımları içinde image build ve deploy işlemini gerçekleştirdik. Keyifli bir şekilde okumanız dileğiyle.
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar