自动化发布-12.遇到的奇葩事

161 阅读2分钟

原文日期:2017-06-18


  • 原先设想的是一套Jenkins服务器可以访问所有内网区域的服务器,包括数据库服务器。网络安全认为这样会导致服务器不够安全,特别是数据库服务器。最终没办法,每个区域部署一套Jenkins服务器,就这样整了四套。
  • 因为数据库服务器整合一台Jenkins服务器在同一个网段,所以依然有三个区域的Jenkins服务器无法访问数据库服务器,最终只能借助应用服务器作为跳板访问数据库服务器。详见SSH Local Port。
  • Jenkins服务器要安装插件,但服务器不能访问互联网,即使临时开通一下也不行。第一个解决方案是直接去Jenkins官网下载对应的Jenkins插件,通过Jenkins网页上传上去;第二种方案是在本地搭建一套相同版本的Jenkins服务器,并在本地安装对应的插件,最后将插件目录直接上传到服务器对应的插件目录下,重启Jenkins服务器即可。
  • 公司邮箱和公司AD域不一样,导致Gitlab 自动生成的AD帐号邮箱和公司邮箱不一致,使得Jenkins服务器无法发送代码规范检查结果的邮箱给对应提交代码开发人员。解决方案:在发送邮箱前截取接收人邮箱地址(Gitlab发送邮箱插件提供发送邮件预处理脚本,脚本语言是Groovy),并将邮箱地址修改成对应的公司邮箱(如liliangang@cto.com.cn==>liliangang@ctosb.com)。
  • 新项目由maven转向gradle,因负面情绪,产生抵触,每次出现问题,都说是gradle的问题。解决方案:手把手教会一个再说。
  • 各个项目配置不一,导致发布脚本差异化太大,太过定制化。解决方案:定制标准去执行,无规矩不成方圆。