top of page
Yazarın fotoğrafıemirhanaydin

Azure Devops Jenkins Pipeline

Güncelleme tarihi: 28 Eki 2022




Bu çalışamam da Azure Repoyu kullanarak Jenkins de pipeline yapacağız.

Azure repodan commitlendikten sonra jenkinsde otomatik pipeline işlemi başlayacak. Jenkins azure repodan kodları çekip docker build işlemi başlayacak sonra sonarqube analizi yaptıracağız ve push ettikten sonra kubernetes e deploy işlemini gerçekleştireceğiz.


Evet kodlarımız Azure Repoda bulunuyor.


Jenkinsfile dosyamız.


pipeline {

  environment {
    dockerimagename = "emirhanaydin61/nodeapp"
    dockerImage = ""
    def scannerHome = tool 'sonarqube'
  }

  agent any
   
   stages {
    stage('Build image') {
      steps{
        script {
          dockerImage = docker.build dockerimagename
        }
      }
    }
    stage('AZURE VM SonarQube Code Analysis') {
      steps {
        withSonarQubeEnv('sonarqube') {
          sh "${scannerHome}/bin/sonar-scanner -Dsonar.projectKey=jenkins -Dsonar.projectName=jenkins -Dsonar.projectVersion=1.0"
                }
            }
        }
    stage('Pushing Image') {
      environment {
               registryCredential = 'dockerhublogin'
           }
      steps{
        script {
          docker.withRegistry( 'https://registry.hub.docker.com', registryCredential ) {
            dockerImage.push("latest")
          }
        }
      }
    }

    stage('Deploying App to Azure Kubernetes Service') {
      steps {
        script {
          kubernetesDeploy(configs: "deploymentservice.yml", kubeconfigId: "kubernetes")
        }
      }
    }

  }

}


Jenkins de bir Job oluşturalım.

Azure Repomuzu bağlayalım.

Repo url ekledik fakat Credentials eklememiz gerekiyor add butonuna basıp azure repoya gidelim Clone butonuna basalım Generate Git Credentials diyelim Username ve passw alalım.

Jenkinse dönüp username password kısmına yapıştıralım.



Azure Devops ile Jenkins entegrasyonunu yapalım


Azure Devopsa girelim Proje settings den service connections girelim.New service connection diyelim.Arama yerine Jenkins yazalım ve gerekli bilgileri yazıp connection kuralım.



Proje settingsden Service Hooks girelim.


Trigger on this type of event bölümünde Code pushed seçeneğini seçiyoruz ve Jenkinsde pipline yapacağımız repomuzu seçiyoruz.


Next diyelim.



Jenkins urlimizi ve username paswwordumuzu giriyoruz finish diyoruz.


Evet azure devops ile jenkins entegrasyonunu sağladık bağlantı başarıyla kuruldu şimdi jenkins tarafına gidip sonarqube docker kubernetes bağlantılarını yapalım.



Sonarqube Jenkins entegrasyonu


Sonarqube gidelim My Account > Security > Generate Tokens kısmından token oluşturalım.

Tokenı kopyalayalım.

Sonarqubede bir proje yaratalım



Jenkinse geçelim şimdi.Pluginlerden Sonarqube Scannerı yükleyelim ve jenkinsi restart edelim.


Kopyaladığımız tokenla jenkinse gidip Kontrol Merkezi>Jenkinsi yönet>Credentials>System>Global credentials a gelip yeni credentials ekleyelim.


Jenkins’i Yönet > Configrue System > SonarQube servers sekmesine gidin. Ayarlarınızı aşağıdaki gibi yapın.


Jenkins’i Yönet > Global Tool Configuration adımlarını takip ederek “SonarQube Scanner” kısmına gidin. Ardından SonarQube Scanner Installations… butonuna tıklayın. Ayarlarınızı aşağıdaki gibi yaptıktan sonra “Save” butonuna basıp kaydedin.



Jenkins Pipline Süreci


Evet biz Azure Repomuzu Jenkinse bağladık Sonarqube entegremizi yaptık Docker işlemi için

docker eklentisini yükledik şimdi dockerhub login olması için credentialsımızı oluşturup pipeline başlatalım.


Pluginlerden Docker Pipeline eklentisini indirip jenkinsi restart edelim.


Jenkinse tekrar login olduktan sonra

Kontrol Merkezi>Jenkinsi yönet>Credentials>System>Global credentials gelip dockerhub bilgilerinizi yazın.



Kubernetese deploy için kubernetesimizi bağlayalım.Kubernetesin tüm işlemlerini burada yapıyorum çünkü burası kritik eklentisini manuel dosya ile yükleyeceğiz.


Dosyayı bu linkten indirebilirsiniz.

Deploy deyip yüklüyoruz.Jenkins restart olduktan sonra Kubernetesimizi

ekleyelim.


Kontrol Merkezi>Jenkinsi yönet>Credentials>System>Global credentials gelip kind kubernetes configurationa gelip gerekli bilgileri dolduruyoruz.


Ve artık Pipline başlatabiliriz.

Evet Azure Repoma gitti kodları aldı build etti sonarqube analizi yaptı push işlemi gerçekleşti sonrasında Azure Kubernetesime deployum yapıldı podlarım ayakta.



Herhangi birşey commit edelim otomatik olarak jenkinsde pipline başlatacak.

Evet pipline başladı.



Sonarqube Analizi


Kubernetes çıktım



ve deployum sorunsuz olduğunu test ettik














103 görüntüleme0 yorum

Son Yazılar

Hepsini Gör

Comments


bottom of page