jenkins的pipeline实现指定节点项目构建并部署代码至后端服务器
2019-07-26 18:04
2546 查看
1.pipeline功能特点
1)是帮助jenkins实现持续集成CI(Continue Integration)转变为持续部署CD(Continue Deploy)的重要功能插件;
2)将多个节点的单个任务连接起来,实现单个任务难以实现的复杂发布流程;
3)Pipeline 的实现方式是一套 Groovy DSL,所有的发布流程都可以表述为一段 Groovy 脚本;
4)是jenkins上的一套工作流框架.
2.pipeline语法
1)stage:pipeline可以划分为多个stage阶段,每个是stage为执行的一个操作,每个阶段可以跨节点;
2)node:jenkins的节点,是执行操作的具体服务器;
3)step:是jenkins pipeline执行操作的最小单元.
3.查看jenkins添加的节点,node1节点同步成功并建立连接
4.pineline项目的创建、代码部署
1)创建一个pipeline-job项目,选择流水线
2)pipeline-job修改配置文件、设置丢弃旧的构建之间保存的最小和最大时间,此项根据需要可设置可不设置
3)再点击Pipeline Syntax(流水线语法),填写gitlab仓库源地址、选择认证方式、点击Generate生成拉取代码的pipeline脚本
4)在复制上面生成的拉取代码的pipeline脚本,编写pipeline构建脚本,保存配置
#以上构建的pipeline脚本: node("node1"){ stage("clone code"){ sh 'rm -rf /var/lib/jenkins/workspace/pipeline-job/*' git branch: 'develop', credentialsId: '1f60339e-fbb3-41e6-88a7-ae80834823b4', url: 'git@192.168.1.30:jie/web-page.git' } stage("compress code"){ sh 'cd /var/lib/jenkins/workspace/pipeline-job/ && tar cvf index_code.tar.gz *' } stage("send code"){ sh 'ssh 192.168.1.23 "/usr/sbin/nginx -s stop"' sh 'ssh 192.168.1.23 "rm -rf /apps/nginx/html/*"' sh 'scp /var/lib/jenkins/workspace/pipeline-job/index_code.tar.gz 192.168.1.23:/apps/nginx/html' } stage("deploy code"){ sh 'ssh 192.168.1.23 "cd /apps/nginx/html/ && tar xvf index_code.tar.gz"' sh 'ssh 192.168.1.23 "/usr/sbin/nginx"' } }
5)在node1节点生成秘钥对
[root@node1 workspace]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:YHTsZqXXSRMoV2ZG3gEgGYEzxdHEF4kNYlIc75Qy6JI root@node1 The key's randomart image is: +---[RSA 2048]----+ | oB%X+OX=. | | .+=*+B**. . | | ++o=++.o. | | + .==. o | | E .oS.. | | . | | | | | | | +----[SHA256]-----+
6)再将node1的公钥认证authorized_keys复制到nginx后端服务.ssh目录下,实现免秘钥登录nginx后端服务
[root@node1 ~]# ssh-copy-id 192.168.1.23
7)点击立即构建
8)查看控制台信息构建成功
9)验证node1节点的工作目录是否构建
root@node1 ~]# ll /var/lib/jenkins/workspace/pipeline-job
total 16
-rw-r--r-- 1 root root 10240 Jul 26 16:42 index_code.tar.gz
-rw-r--r-- 1 root root 42 Jul 26 16:42 index.html
10)浏览器访问nginx服务,实现pipeline脚本代码部署
相关文章推荐
- Azure 项目构建 – 部署 Jenkins 服务器以实现持续集成(CI)
- linux下构建svn服务器并实现项目自动部署
- Jenkins Pipeline+Docker实现流水线自动化构建(上百个项目共用一个脚本方案)
- linux下构建svn服务器并实现项目自动部署
- 集成开源系统实现自动化构建、代码质量评估、项目信息统计(1)——Jenkins安装
- 【Jenkins教程三】基于Linux实现Jenkins+maven+git+tomcat的自动化构建部署项目
- 【Jenkins教程二】基于Linux实现Jenkins+maven+tomcat的自动化构建部署项目
- 代码优化①——Jenkins安装集成SonarQube 实现构建项目同时审查代码
- Jenkins构建完成后自动部署到指定服务器(二)
- 前后端分离,springBoot项目后台代码打包部署到腾讯云服务器
- SharpStreaming项目开发纪实:构建基于RTSP协议的服务器及客户端应用(二)——服务器的业务代码实现
- SharpStreaming项目开发纪实:构建基于RTSP协议的服务器及客户端应用(三)——客户端的业务代码实现
- Jenkins构建本地项目到服务器上自动部署的方法
- SharpStreaming项目开发纪实:构建基于RTSP协议的服务器及客户端应用(三)——客户端的业务代码实现
- Jenkins自动构建部署项目到远程服务器
- 集成开源系统实现自动化构建、代码质量评估、项目信息统计(1)——Jenkins安装
- 集成开源系统实现自动化构建、代码质量评估、项目信息统计(1)——Jenkins安装
- Jenkins Pipeline+Docker实现流水线自动化构建(上百个项目共用一个脚本方案)
- 【Jenkins教程二】基于Linux实现Jenkins+maven+tomcat的自动化构建部署项目
- 【Jenkins教程三】基于Linux实现Jenkins+maven+git+tomcat的自动化构建部署项目