在上一篇博客《Jenkins+Git+Gitlab+Ansible实现持续化集成一键部署静态网站(一)--技术流ken》中已经详细讲解了如何使用这四个工具来持续集成自动化部署一个静态的网站。
如果大家可以熟练掌握以上内容,势必会在工作中减轻不小的工作量。
本篇博客将再次使用这四个工具结合freestyle和pipeline来完成动态网站的部署。
为了拓宽知识点,本篇博客将使用jenkins的两种常用方法来进行部署,如果你对pipeline还不熟悉,请参考我之前的博客《Jenkins凭证及任务演示-pipeline(二)--技术流ken》。
虽说freestyle也可完成相同的操作,而且操作简单,但是freestyle只是适合服务器量很少的场景50-100台左右。如果你管理了百台、千台服务器势必会用到pipeline进行批量化操作。
所以pipeline来还是应该深入去研究一下的,虽说确实有困难,但是因为它的格式相对固定单一,也不是可望而不可及。多学多练多总结。
有关持续集成自动化部署系列差不多写了有十篇左右了。本篇博客将是这一系列的最后一篇,接下来会更新docker及k8s系列。敬请期待。
项目需求
需求一.、使用gitlab创建项目
需求二、 使用ansible的roles实现一键化部署wordpress
每次部署需要备份之前的网站数据
使用roles
使用templates
脚本对网站监控检测
需求三、 完成之后项目上传至gitlab
需求四、使用jenkins实现项目的持续集成
项目环境准备
centos7
Gitlab服务器: 10.220.5.137
Ansible服务器: 10.220.5.139
wordpress服务器1: 10.220.5.138
防火墙以及selinux关闭状态
Gitlab创建项目
有关项目的创建我这里就不再赘述,大家可以参考我之前的博客《Gitlab在linux/windows中免密使用(二)--技术流ken》
我就直接拿我之前创建好的项目进行演示
Git下载远程仓库内容
在ansible服务器10.220.5.139上面操作
第一步:创建目录并clone远程仓库内容
[root@ken ~]# mkdir t [root@ken ~]# cd t [root@ken t]# git clone http://10.220.5.137/webg1/wordpress.git Cloning into 'wordpress'... Username for '': root Password for '@10.220.5.137': remote: Counting objects: 1062, done. remote: Compressing objects: 100% (969/969), done. remote: Total 1062 (delta 68), reused 1042 (delta 68) Receiving objects: 100% (1062/1062), 4.15 MiB | 0 bytes/s, done. Resolving deltas: 100% (68/68), done. [root@ken t]# ls wordpress