前言
项目上需要适配一套麒麟环境 arm 架构环境的产品,经过适配之后需要部署到项目的生产环境提供服务,在适配完毕之后需要对此次适配进行一次归档,即通过 jenkins 来将适配完毕之后环境进行一次构建归档,归档内容:将产品所用到的镜像归档至指定的 harbor 仓库,容器所用到的 yaml 文件、应用构建好的 jar 包,以及应用所用到的初始化 sql 数据等配置统一打包并将 tar 包归档至公司内部的 ftp 服务器当中,项目上在部署的时候可以通过 ftp 服务器对外提供的页面将部署所需要的部署包下载到本地进行部署。
一、首先通过脚本的方式创建一套 jenkins 归档 job
1、jenkinsCli 拉取模板 job
通过 jenkins 的 cli 命令将模板 job 拉到本地(使用别名设置 jenkins 的 cli 命令),并创建存放修改 git 地址和 job 名称的 txt 文件;
mkdir /root/jenkinsjob
cd /root/jenkinsjob
touch gitadd.txt
touch proname.txt
jcli get-job xxx归档/cityos-quota > demo.xml
2、填写拉取代码的 git 地址 & proname
将需要创建的 job 的 git 地址和 jobname 分别填写不通的文件当中;
3、编写 shell 脚本
通过编写脚本来将不通的 job 自动化创建至 jenkins,在脚本当中通过:变量传参、for 循环、sed、jenkinsCli 等命令来实现自动化创建 Jenkins Job;
vim tranfer.sh
sh tranfer.sh
4、查看 job 任务,创建成功;
二、编写 Pipeline 流水线脚本
代码如下(示例):
以下则是此次归档的 jenkins 整个流水线,通过该流水线套用所有通过脚本来创建的 jenkins job,每一个 jenkins job 对应一个后端应用,其中主要是容器化部署,通过将应用的代码从 git 仓库拉取到 jenkins 服务器,并使用 maven 命令将拉取下来的代码打包并生成 jar 包,通过编写 DockerFile 的方式将 jar 包录入至镜像当中并推送至 harbor 仓库,通过 CMD 模块来执行启动 jar 包(应用)的容器,其次是将应用所需要的 sql 数据、apollo 的配置信息、生成的 jar 包等数据封装成 tar 包,使用 ansible 来将打成的 tar 包推送至 ftp 服务器。
def packagePath=""
pipeline{
// 通过 agent 模块来指定 job 运行在哪个 jenkins 节点上
agent { node {label 'master'}}
stages {
stage('CleanWs'){
steps {
clea