gitlab+Jenkins的ansible插件来发布k8s的一些思路

CI/CD的实践方法有很多,而Jenkins因为其丰富的插件而成为这个领域的常青树。我这里介绍一种Jenkins发布的思路。我们希望,开发完成之后需要进行测试或者上线,直接在代码对应分支上打个tag,然后依据这个tag作为版本号来进行发布。

首先使用git parameter plugin,来接收git仓库的tag

版本控制这里就是gitlab,其中提前需要将gitlab的秘钥保存到Jenkins

然后在构建环境这里选上颜色啥的

接下来要用到ansible playbook模块

点开高级,加上我们需要用到的参数,用来渲染模板

最后看一下playbook

主要思路就是在发布机上build镜像和push镜像,完成之后,渲染deploy模板,模板里面的内容就是一个应用所需要的全部资源定义,例如namespace,configmap,secret,deployment、service、ingress(virtualserver)等等。然后把每次需要根据构建而改变的东西抠出来做成模板的参数,在发布的时候将对应参数传进去渲染成最终的发布yaml文件,发送到拥有kubectl权限的管理机器上,最后apply即可。

看一下发布流程:

留下评论