jenkins流水線共享庫搭建實例


創建共享庫代碼項目

      1.共享庫項目必須按照特定的代碼組織結構/src/    /vars 

       

 jenkins配置全局設置

     1.共享庫名稱設置  這里的Name的值在jenkinsfile文件中會需要用到

           

      2.配置jenkinsfile的代碼倉庫訪問信息

         

 創建jenkins流水線任務

       

 項目實例

   1.devops/src/org/devops/ansible.groovy

package org.devops


def AnsibleDeploy(hosts,func){

   sh "ansible ${func} ${hosts}"


}
ansible.groovy

   2.devops/jenkinsfile/ansible.jenkinsfile

#!groovy

@Library("myjenkinslib@master") _ 

def tools = new org.devops.tools()
//tools指代的是src/org/devops/tools.groovy腳本文件

def ansible = new org.devops.ansible()

pipeline
{
     agent { node { label "master"}  }
     
     stages{
         stage("build"){
           steps {
              script {
             
                ansible.AnsibleDeploy("servers","-m ping")      
                 
              }
            }
         }
     }
     
     
   post {
        always {
             script{
                  tools.PrintMes("這里是tools打印的.........")
             }
        }
   }     
}
ansible.jenkinsfile

   注意:jenkinsfile中的@Library("myjenkinslib@master") _ 中的 myjenkinslib是需要在jenkins中的全局配置

   3.在jenkins中創建pipeline任務的時候需要指定執行任務的jenkinsfile腳本名稱

   4.vars下的groovy腳本可以直接調用

       

   5.運行結果如圖

      

  pipeline中實現docker鏡像的推送

package org


def create_dockerimage(jenkinsjar,jardir,jarname,harborpro,imagename){

   //sh "sudo cp -r /home/jenkins/docker-pipeline/template/*  /home/jenkins/docker-pipeline/siem-cluster/siem/siem-dev/"
   sh "sudo cp -r /home/jenkins/docker-pipeline/template/*  ${jardir}"
   sh "sudo sed -i \'s/tempjar/${jarname}/\'   ${jardir}Dockerfile"
   sh "sudo sed -i \'s/pro/${harborpro}/\'     ${jardir}build.sh"
   sh "sudo sed -i \'s/temp/${imagename}/\'    ${jardir}build.sh"
   //sh "sudo cp -r /var/lib/jenkins/workspace/AppServiceProject/register-center/target/register-center-dev.jar ${jardir}"
   sh "sudo cp -r ${jenkinsjar} ${jardir}"
   sh "sudo sh ${jardir}build.sh"

}
tools.groovy
#!groovy

@Library("myjenkinslib@master") _ 

def mytools = new org.tools()

pipeline {

 stage("Deploy"){
           steps {
              script {
             mytools.create_dockerimage("/var/lib/jenkins/workspace/AppServiceProject/register-center/target/register-center-dev.jar","/home/jenkins/docker-pipeline/siem-cluster/siem/siem-dev/","register-center-dev.jar","taishiganzhi","register-center")
                
      }
   }
}
流水線

pipeline中實現了函數調用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM