文章目录

  • 介绍
  • 部署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页面中设置
  • 创建作业-选择流水线项目,点击作业配置,来到最下面设置流水线语法

获取拉取项目脚本

codeup android流水线 代码构建流水线_docker

  • 配置完点击下方生成流水脚本,即可生成对应的脚本数据

获取部署项目脚本

  • 通过点击流水线语法 所跳转的页面
  • 设置的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方式的流水线即可

codeup android流水线 代码构建流水线_流水线构建_02

jenkins配置流水线

  • 直接选择要拉取项目的git地址和自己账号密码的凭据即可

codeup android流水线 代码构建流水线_流水线构建_03

部署阶段将jar包放进另一个服务器中并开启项目

jenkins容器配置(传输jar包)

codeup android流水线 代码构建流水线_docker_04

  • 输入在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"
  • codeup android流水线 代码构建流水线_docker_05


运行的服务器配置(开启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服务流水脚本)

codeup android流水线 代码构建流水线_docker_06

  • 系统管理-插件管理-可选插件,搜索以下插件进行下载
  • codeup android流水线 代码构建流水线_服务器_07

  • 点击流水线任务-配置-流水线语法
  • 选择此ssh类型的配置,设定一个ssh服务名即可,直接生成流水脚本
  • codeup android流水线 代码构建流水线_流水线构建_08

  • 将此流水线放在Jenkinsfile文件中的部署部分即可
  • 在此流水脚本中的execCommand属性(默认是空的)内 输入服务器中运行项目的脚本文件路径(之前写好的的deploy.sh文件)
  • codeup android流水线 代码构建流水线_docker_09

  • 在系统管理-系统配置 , 对刚生成的ssh服务进行配置
  • codeup android流水线 代码构建流水线_服务器_10

  • 填写私钥路径,以及之前配置的服务名,和要运行jar包项目的服务器ip地址
  • codeup android流水线 代码构建流水线_服务器_11

效果描述

上传项目到码云上,jenkins会通过git链接,拉取并将项目打包成jar包扔到另一台服务器上,并且在那台服务器启动该项目,浏览器输入该服务器ip地址+端口即可访问项目~