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}" }
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中实现了函数调用
本文来自博客园,作者:不懂123,转载请注明原文链接:https://www.cnblogs.com/yxh168/p/13192392.html