之前管理了gitlab,现在管理jenkins,大概思路和gitlab一致
一个公司可能会有多个Jenkins,当然也可能只有一个
比如测试环境使用一个、线上环境使用一个,也可能统一使用同一个
其实我是希望线上环境单独使用一个jenkins的,防止因测试job过多,影响线上的部署
当前,也可以在同一个jenkins上,加多个node节点,
通过标签来控制线上任务在哪些上执行, 以此来分开
有关于jenkins job,都通过pipeline的形式创建,这样方便维护(只需要修改pipeline文件就可以改变)
还有一点要注意,job的参数最好不要在pipeline文件中定义,因为参数必须触发一次job才能生效
这样就导致,你在修改了参数后,必须先执行一下job才行,这样很不科学
因此参数都是在创建job时在界面上直接设置,这就要注意一点,这个参数尽可能的少
以免以后不好维护
一般参数:服务标识、环境标识、部署的版本或分支,其它可能用到的参数,通过接口获取
requirements.txt
utils/jenkins_cli.py
component/jenkins/models.py
component/jenkins/controllers/server.py
component/jenkins/apis/server.py
component/jenkins/urls/server.py
component/jenkins/controllers/job.py
component/jenkins/apis/job.py
component/jenkins/urls/job.py
component/jenkins/urls/__init__.py
component/urls.py
component/jenkins/controllers/sync.py
scheduler/tasks/berry.py
rurality/settings.py
data/sql/rurality.sql
requirements.txt:
安装jenkins依赖,pip install -r requirements.txt
utils/jenkins_cli.py:
操作jenkins工具类,里面包含通过jenkins依赖库的操作,也有自己实现的操作
component/jenkins/models.py:
model分成三个,server、job、build
这样基本涵盖了我们以后所需要的功能
server通过超级管理员账号录入,job通过同步功能获取,build以后在服务部署中会有用处
有关build的log日志是很重要的一个内容,尤其是在任务失败的时候
在依赖库中只提供了获取所有日志输出的功能,但是一大坨不好看
通过抓取jenkins接口,发现有一个接口可以按步骤获取
component/jenkins/controllers/server.py
component/jenkins/apis/server.py
component/jenkins/urls/server.py
Jenkins服务相关接口
component/jenkins/controllers/job.py
component/jenkins/apis/job.py
component/jenkins/urls/job.py
component/jenkins/urls/__init__.py
component/urls.py
Jenkins job相关接口
component/jenkins/controllers/sync.py
scheduler/tasks/berry.py
同步Jenkins job操作
rurality/settings.py:
apps中增加jenkins
data/sql/rurality.sql:
导入最新的sql
Jenkins Job只做了简单的列表页,并没有详情页面,目前还没有需求
但是之后可能会做详情页,展示历史构建过程
src/api/component/jenkins/url.js
src/api/component/jenkins/index.js
src/views/system/jenkins_server/index.vue
src/views/system/jenkins_server/components/ObjDialog/index.vue
src/router/modules/system.js
src/views/component/jenkins/index.vue
src/router/modules/component.js
src/api/component/jenkins/url.js
src/api/component/jenkins/index.js
相关接口
src/views/system/jenkins_server/index.vue
src/views/system/jenkins_server/components/ObjDialog/index.vue
src/router/modules/system.js
Jenkins服务管理功能界面
src/views/component/jenkins/index.vue
src/router/modules/component.js
Jenkins Job相关界面