Jenkins+Ansible+Gitlab自动化部署实践
yx1991523 关注 0人评论 15581人阅读 2018-04-17 11:33:11
最近一直在学Ansible,详见上篇博客,但是总感觉使用ssh命令行操作有点low,另外官方也有收费版的Ansible Tower可视化软件,但是由于不开源,可以参考的资料很少,官方倒是有一些英文手册,但都是只说了功能,并没有操作步骤,对于我们来讲实在是难以上手,但是还是想试试到底它有什么高明的功能,于是下载了官方的试用版体验一把。
最初的体验还是不错的,可以在页面上添加主机,添加任务,添加项目等等,并且执行起来效果也很舒服,如下图:
有各种各样的状态和信息,并且以彩色显示,一眼就能看出成功与失败。但是正要兴奋的时候,问题来了,测试机器有一两台很好说,如果是大量集群,有成百上千台机器怎么办呢?我在inentory添加host的页面只看到了如下界面
难道只能一台一台添加吗?这岂不是开玩笑?我继续检索相关文档,官方只是说可以通过云主机的source添加(如下图),可是我们不是云主机啊,就是物理机,难道就没有办法了吗?
经过一天的检索依然未果,如果各路大神有办法批量添加主机请联系我,qq1848473726.谢谢。
既然付费的软件都行不通,那估计还是闭源就无人问津,社区也就不活跃,也就没办法帮他优化,那作为一个互联网人还是诉诸于开源吧,经过检索资料,查到如下一篇文章,叫《Jenkins+Ansible+Gitlab自动化部署三剑客》(http://www.showerlee.com/archives/1880)。所以我就模仿前辈的方法自己做了一个nginx的部署实验。
一、开通github账号,并创建仓库
二、在虚拟机上安装Java、resin(下载二进制包即可,tar.gz)和ansible(yum install ansible –y)
三、下载jenkins的war包(http://mirrors.jenkins.io/war-stable/)到resin的webapps文件夹,并重命名为ROOT.war
四、启动resin(./bin/resin.sh start)
五、在windows操作系统上编写playbooks,并用git-bash终端上传至github仓库,这一步可以参考该文章:https://blog.csdn.net/qq_31852701/article/details/52944312 需要注意的是如果使用ssh方式要先把主机的公钥上传至GitHub,该步骤可参考:https://blog.csdn.net/qq_35246620/article/details/69061355?locationNum=11&fps=1
六、登录刚刚建好的jenkins服务器
1、新建项目
2、配置项目
3、填写代码,确认项目
4、上线演示
为了保证安全,可以分为两个下拉菜单,一个是单台主机,另一个为主机组,如下图。nb441为单台主机的主机名,web为一个主机组。第一次建议部署一台主机,测试后没问题再部署整个组。
5、上线过程展示
6、当单台部署没问题之后,方可部署整个主机组,如下图。
至此,演示完毕,如果需要演示代码可以去我的github下载(https://github.com/yx1991523/ansibledemo.git),感谢大家支持。