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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值