继上篇《自动化运维项目之jenkins pipline+ansible playbook》,仍有许多痛点,即项目文件繁杂,每个项目一个jenkinsfile,无法统一管理部署项目,从而衍生出一些想法,能不能通过一个配置文件管理所有的前后端项目,后采用PiplineCfg.yaml配置文件,将所有项目需要的变量写入,通过传参方式传入每个部署逻辑中去,即可达到一个配置文件管理所有部署项目之目的
一.前置准备
JOB名都需要以"环境名/分支名"-"部署后置目录"命名,大致目录结构为以下
二.部署逻辑解读
1.jenkinsfile调用vars中的devops.groovy
2.devops.groovy中引入各个src中的函数
3.src中的函数中最重要的是LoadCfg.yaml,负责解析PiplineCfg.yaml,解析出来的参数,作为全局变量,传入部署所有逻辑中
三.github地址
https://github.com/herrywen-nanj/jenkins-shared-library
四.可以优化的部分
1.钉钉部分也可以通过HttpRequest模块封装,后续继续优化
2.配置文件也可以不从PiplineCfg.yaml中读取,上千个项目的话建议放在数据库中去