jenkins结合gitlab实现pipline的自动构建部署(代码片段)

author author     2023-01-14     228

关键词:

部署jenkins与gitlab服务就在这不演示了,可以参考前面的两篇文章。

1、jenkins配置自动构建部署

1.1、基于ssh key拉取代码

先在jenkins服务器上创建个ssh key,在把公钥配置到gitlab上面,再到jenkins web界面配置凭据,使jenkins来拉取代码。

root@jenkins-slave:~# ssh-keygen
root@jenkins-slave:~# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDYN/bU3KUcOE5Qt30LyDot9Qay2mHCAx6bgF9Mv+SH4RQG2YCqmMiKxdITiqby5MhicgtOQ5dTaaAp5oJ0DmjwA9lrzeZ0m0OhMBxrTwH6vp8zt4m2IkogDAAGe32wOE6/FpRqaev6zPkHRwxbO6W1sXWVxvwX+OYcJJ1xR/FiVxoeE7GHt3S06y7v+/OKpl49TGgtc6bV0gNebE44JD82SF74zoyVeAqkZeuq3+U7psRuGKcsfwwLnMusbLvac920DpFswZFqVgRzTfMqZE5ZkmWdR816+BbPzLgkcQzDaWn+99Ly7vJmfVdE+1ZMidW2oundoEBRMOhd3Ori13PnjxCaaUgJXQ1wLt/kLpQjq0FqTGbZRZ8vdcYG/IxRKixb303kjNA2F+zX9ZZOXjlDQqMZbleNqc+GgZDCv5k2XmQ9xF+PbhRjtfmPjGHkqOlM/gsq4Wxl254GNGpZZLRWnHKfPLlThmJvlhw8v8yIc8fjaDxLUADytaqCYSEIgBE= root@jenkins-slave.stars.com
root@jenkins-slave:~# cat /root/.ssh/id_rsa
-----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY-----

2、pipline

官方pipline的示例:https://www.jenkins.io/zh/doc/book/pipeline/ pipline是帮助jenkins实现CI到CD转变的重要角色,是运行在jenkins 2.X版本的核心插件,简单来说pipline就是一套运行与jenkins上的一套工作流框架,将原本独立运行与单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程,从而实现单个任务是很难实现的复杂流程编排和任务可视化,pipline的实现是一套Groovy DSL,任何发布流程都可以表述为一段Groovy脚本。

2.1、pipline语法

https://www.jenkins.io/zh/doc/book/pipeline/syntax/ stage:阶段,一个pipline可以划分为若干个stage,每个stage都是一个操作的步骤,比如clone代码、代码编译、构建镜像、上传镜像、镜像部署,阶段是一个逻辑分组,可以跨多个node执行。 node:节点,每个node都是一个jenkins的节点,可以是jenkins master也可以是jenkins agent,node是执行step的具体服务器。 step:步骤,step是jenkins的pipline最基本的操作单元,从在服务器上创建目录到构建容器镜像,由各类的jenkins插件提供实现,例如:sh "make"

2.2、pipline优势

  • 可持续性:jenkins的重启或者中断后不会影响正在执行的job。
  • 可支持暂停:pipline可以选择停止并等待人工输入或者批准在继续执行。
  • 可扩展:通过groovy的编程更容易的扩展插件。
  • 并行执行:通过groovy脚本可以实现step,stage间的并行执行,和更复杂的相互依赖关系。

2.3、创建一个pipline

创建一个简单的部署web的pipline,并测试构建发布。

1.3、测试访问web

06.jenkins分布式构建和pipline(代码片段)

Pipline简介pipline是帮助Jenkins实现CI到CD转变的重要角色,是运行在jenkins2.X版本的核心插件,简单来说Pipline就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复... 查看详情

gitlab与jenkins结合构成持续集成(ci)环境(代码片段)

Jenkins概述:  Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作。  官方网址:https://jenkins.io/  Gitlab概述:  Gitlab是一个可以实现自托管的Git项目仓库,可通过web界面进行... 查看详情

jenkins和gitlab结合的时候出错

StartedbyuserzhaoliangBuildinginworkspace/var/lib/jenkins/workspace/ZuoYeah_Static_Production>gitrev-parse--is-inside-work-tree#timeout=10FetchingchangesfromtheremoteGitrepository>gitconfigremot 查看详情

springcloud+docker+jenkins+gitlab+maven实现自动化构建与部署实战(代码片段)

...目案例场景为初心进行实际细讲。本文章主要讲述Docker、Jenkins、GitLab、Git、JDK、SpringBoot、Maven等技术结合实现自动化运维部署 查看详情

springcloud+docker+jenkins+gitlab+maven实现自动化构建与部署实战(代码片段)

...目案例场景为初心进行实际细讲。本文章主要讲述Docker、Jenkins、GitLab、Git、JDK、SpringBoot、Maven等技术结合实现自动化运维部署 查看详情

1.gitlab和jenkins结合构建持续集成(ci)环境

...付的基础上,把部署到生产环境的过程自动化。 14.1.2jenkins和Gitlab概述 查看详情

gitlab和jenkins结合构建(代码片段)

**#192.168.1.3安装gitlab-ce**yum-yinstallcurlpolicycoreutilsopenssh-serveropenssh-clientspostfixyum–yinstallgitlab-cevim/etc/gitlab/gitlab.rbgitlab-ctlreconfigure打开网页输入IP地址,默认是root用户,提示让你输入密码,然后登陆然后创建用户 查看详情

gitlab+jenkins自动化部署

基于gitlab和jenkins的自动化部署 Gitlab基于Jenkins自动化部署教程:https://blog.csdn.net/aaaaaab_/article/details/82012044https://www.cnblogs.com/dengbingbing/p/10448185.html GitLab是一个代码仓库,用来管理代码。Jenkins是一个自动化服务器,可以运... 查看详情

gitlab+jenkins自动化上线部署持续集成(代码片段)

相信大家开始玩gitlab+jenkins的时候对着两个工具有肯定有一定了解,我就不做详细解释了,下面就跟大家简单的说下gitlab,jenkins之间工作关系:GitLab是一个代码仓库,用来管理代码。Jenkins是一个自动化服务器,可以运行各种自... 查看详情

60-cicd持续集成-jenkins连接gitlab资源并且自动部署上线全流程

Jenkins实现CICDJenkins结合GitLab实现代码下载导入项目Jenkins安装和Gitlab相关的插件在管理插件中搜索需要gitlab的相关插件并安装Jenkins服务器创建访问GitLab的凭据Jenkins所支持的凭证类型如下用户名和密码(Usernamewithpassword)SSH用户名和... 查看详情

linux云计算--中国三大电商大厂都在使用的《gitlab与jenkins结合构建持续集成(ci)环境》是如何排列(代码片段)

...章目录1持续集成概述和搭建Gitlab平台1.1持续集成概述1.2jenkins和Gitlab概述GitLab概述:1.3GitLab和GitHub的区别1.4搭建GitLab平台2配置gitlab邮件服务和对gitlab平台汉化2.1管理gitlab服务2.2配置gitlab邮件服务1.开启邮箱的SMTP服务2.编辑/etc/... 查看详情

使用gitlab+jenkins实现持续集成(ci)环境(代码片段)

使用GitLab+Jenkins实现持续集成(CI)环境一、持续集成简介1.GitLab简介2.Jenkins简介3.GitLab和GitHub的区别4.持续集成系统的工作流程二、使用GitLab+Jenkins实现持续集成(CI)环境1.安装Gitlab1)登录Gitlab2)配... 查看详情

jenkins+gitlab+harbor部署cicd(代码片段)

jenkins相关操作docker部署jenkinsdockerrun--namejenkins-d-p8080:8080-p50000:50000--privileged=true--restart=always-v/jenkins/home:/var/jenkins_home-v/var/run/docker.sock:/var/run/docker.sock-v/usr/bin/docker:/usr/bin/dockerjenkins/jenkins:2.387.2-lts打开jenkins访问页面需要下载的插... 查看详情

jenkins+git+gitlab+ansible实现持续集成自动化部署动态网站--技术流ken(代码片段)

 项目前言 在上一篇博客《Jenkins+Git+Gitlab+Ansible实现持续化集成一键部署静态网站(一)--技术流ken》中已经详细讲解了如何使用这四个工具来持续集成自动化部署一个静态的网站。如果大家可以熟练掌握以上内容,势必... 查看详情

gitlab+jenkins实现自动部署

https://carlislebear.blogspot.com/2019/02/gitlab-jenkins-continuous-integration.html  此篇文章写得很详细大体思路如下:一、安装Gitlab+Jenkins(省略)二、配置Gitlab(上传Jenkins服务器的秘钥、捣鼓代码)三、配置Jenkins1、安裝插件ManageJenkins... 查看详情

linux上gitlab+jenkins实现vuespringcloud项目的自动部署

...导致插件安装失败。可以采用手动安装的方式。手动下载jenkins插件:jenkins插件下载地址:http://mirror.xmission.com/jenkins/plugins/,一般下载下来后缀为hpi,如下载下来是zip的,记得把后缀修改为hpi打开jenkins,点击 查看详情

jenkins+gitlab自动打tag(代码片段)

...受保护的分支上,一般为Master分支,然后打TAG。这里结合Jenkins+Gitlab进行自动分支合并打TAG。Jenkins配置进入Jenkins,新建Job,进入Job的Configure配置,配置参数化构建。Build选择添加ExecuteShell。打TAG分支合 查看详情

jenkins+gitlab

 思路 1、使用jenkins+gitlab,实现git仓库有push时,立即触发jenkins的job,进行构建。 2、jenkins和gitlab的安装配置直接参考官方文档 3、以下文档仅是抛砖引玉,介绍将jenkins和gitlab打通。  ==========================GitL... 查看详情