一、背景
使用multibranch发布到测试环境,各个环境的应用当前使用的是哪个分支无法使用Jenkins自带的统计工具看到,因此用Python写了个小程序记录发布的相关信息到MySQL,包括应用名、环境、主机、分支、时间。
二、实现
1、Jenkinsfile中,调用ansible部署应用。在调用ansible时,将应用名、环境、分支作为输入参数。
ansiblePlaybook extraVars:["jobname":"$jobname", "StartupPara":"${params.runEnv}", "branchname":"$branchname"], installation: 'ansible-playbook', limit: "${params.runEnv}", playbook: "${params.playbook}", sudoUser: null
2、在部署应用的ansible playbook剧本添加一条:
- shell: "/usr/bin/python /apps/sh/deployStatic.py {{ jobname }} {{ StartupPara }} {{ branchname }}"
3、在测试环境的MySQL建表
CREATE TABLE `t_deploystatic` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`jobname` varchar(255) NOT NULL,
`runEnv` varchar(20) NOT NULL,
`hostname` varchar(255) NOT NULL,
`branchname` varchar(255) NOT NULL,
`create_time` datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
)
4、Python代码deployStatic.py,并放到测试环境的各个主机