文章目录
- 介绍
- 部署maven项目演示(war包 | Pipeline script)
- 获取拉取项目脚本
- 获取部署项目脚本
- 流水线代码jenkinsfile模板
- 部署springboot项目演示(jar包 | Pipeline script from SCM | 重点)
- 准备一个springboot项目
- jenkins配置流水线
- 部署阶段将jar包放进另一个服务器中并开启项目
- jenkins容器配置(传输jar包)
- 运行的服务器配置(开启jar包项目脚本)
- jenkins页面配置(生成ssh服务流水脚本)
- 效果描述
介绍
- 基本概念
pipeline 是一套运行在 Jenkins 上的工作流框架,将原来独立运行于单个或多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。 - Pipeline 的好处
- 代码:以代码的形式实现,通常被检入源代码控制,使团队能够编辑,审查和迭代其传送流程。
- 持久:无论是计划内还是计划外的服务器重启,Pipeline都是可恢复的
- 可停止:Pipeline可接收交互式输入,以确定是否继续执行Pipeline
- 多功能:Pipeline支持现实世界中复杂的持续交付要求,他支持fork/join,循环执行,并执行任务的功能。
- 可拓展:**Pipeline插件支持其DSL的自定义拓展,以及与其他插件集成的多个选项
部署maven项目演示(war包 | Pipeline script)
- Pipeline script方式的流水线,则将流水线脚本内容放在jenkins页面中设置
- 创建作业-选择流水线项目,点击作业配置,来到最下面设置流水线语法
获取拉取项目脚本
- 配置完点击下方
生成流水脚本
,即可生成对应的脚本数据
获取部署项目脚本
- 通过点击
流水线语法
所跳转的页面 - 设置的tomcat凭据具体如何设置 请至:jenkins使用文章的最下方的
宿主机开启远程部署
查看
流水线代码jenkinsfile模板
pipeline {
agent any
stages {
stage('拉取代码') {
steps {
拉取项目流水线脚本~
}
}
stage('编译构建') {
steps {
sh label: '', script: 'mvn clean package'
}
}
stage('deploy') {
steps {
部署项目流水线脚本~
}
}
}
}
点击立即构建
即可开始执行拉取项目并部署到指定的tomcat上去~
部署springboot项目演示(jar包 | Pipeline script from SCM | 重点)
- Pipeline script from SCM方式的流水线,则将流水线脚本文件
Jenkinsfile
内容放在idea项目中
准备一个springboot项目
- 此项目放在码云上
- 将流水文件
Jenkinsfile
放在项目里,则在jenkins页面配置无需写流水脚本,选择from SCM
方式的流水线即可
jenkins配置流水线
- 直接选择要拉取项目的git地址和自己账号密码的凭据即可
部署阶段将jar包放进另一个服务器中并开启项目
jenkins容器配置(传输jar包)
- 输入在jenkins容器中输入命令
ssh-keygen -m PEM -t rsa
生成私钥和公钥 - 然后输入
ssh-copy-id 另一台服务器的ip地址
将公钥传过去,这样以后用scp传文件则无需输入密码 - 在jenkins容器中jar包位置输入命令
scp xxx.jar root@另一台服务器ip地址:/xx/xx
将此jar包扔到另一台服务器上(这段作为流水线脚本,放在jenkinsfile文件中) - 流水线脚本,部署部分脚本则为:
sh "scp target/cicd-springboot-1.0-SNAPSHOT.jar root@192.168.8.11:/usr/local"
运行的服务器配置(开启jar包项目脚本)
- 此服务器为
jenkins容器
将打包好的项目传过来的服务器,路径为/usr/local
- 在/usr/local 路径下 创建一个
deploy.sh
脚本文件,输入命令行
vi deploy.sh
- 编辑内容为 打开此项目的命令(路径都为绝对路径)
/usr/local/jdk1.8/bin/java -jar /usr/local/cicd-springboot-1.0-SNAPSHOT.jar
- 赋予此文件启动权限
chmod 777 deploy.sh
jenkins页面配置(生成ssh服务流水脚本)
- 系统管理-插件管理-可选插件,搜索以下插件进行下载
- 点击流水线任务-配置-流水线语法
- 选择此ssh类型的配置,设定一个ssh服务名即可,直接生成流水脚本
- 将此流水线放在
Jenkinsfile
文件中的部署部分
即可 - 在此流水脚本中的execCommand属性(默认是空的)内 输入服务器中运行项目的脚本文件路径(之前写好的的
deploy.sh
文件) - 在系统管理-系统配置 , 对刚生成的ssh服务进行配置
- 填写私钥路径,以及之前配置的服务名,和要运行jar包项目的服务器ip地址
效果描述
上传项目到码云上,jenkins会通过git链接,拉取并将项目打包成jar包扔到另一台服务器上,并且在那台服务器启动该项目,浏览器输入该服务器ip地址+端口即可访问项目~