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中实现了函数调用

posted @ 2020-06-25 17:53  不懂123  阅读(1633)  评论(0编辑  收藏  举报