創建共享庫代碼項目
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}" }
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打印的.........") } } } }
注意: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" }

#!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中實現了函數調用