Jenkins+GitLab+Ansible自动发布代码平台部署
服务器规划
服务器IP |
主机名 |
环境 |
备注 |
192.168.71.3 |
gitlab |
Gitlab | deploy主机与其他三台主机建立ssh互信 |
192.168.71.4 |
deploy | Jenkins+Ansible |
|
192.168.71.5 |
server-3 | nginx-server-1 | |
192.168.71.6 | server-4 | nginx-server-2 |
一、安装Jenkins
步骤:
1、 配置JDK环境
2、 安装Tomcat
3、 将jenkins.war包放置在tomcat的webapps目录下
4、 修改catalina.sh文件,添加如下配置:
export JENKINS_HOME="/opt/jenkins"
5、 启动tomcat
6、 安装相应的插件
二、安装GitLab
步骤:
1、 配置gitlab的yum源
[root@gitlab ~]# cat > /etc/yum.repos.d/gitlab-ce.repo << EOF
> [gitlab-ce]
> name=Gitlab CE Repository
> baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el\$releasever/
> gpgcheck=0
> enabled=1
> EOF
[root@gitlab ~]# yum clean all && yum makecache
2、 安装依赖包
[root@gitlab ~]# yum install -y curl policycoreutils-python openssh-servre
3、 安装gitlab
[root@gitlab ~]# yum install gitlab-ce –y
4、 配置gitlab
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.71.3'
5、 初始化配置并启动
[root@gitlab ~]# gitlab-ctl reconfigure
三、汉化gitlab
步骤:
1、 查看本版
[root@gitlab ~]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
11.11.0
2、 下载相同版本的汉化补丁
[root@gitlab ~]# git clone https://gitlab.com/xhang/gitlab.git gitlab-cn -b v11.11.0-zh
3、 关闭gitlab并进行汉化操作
[root@gitlab ~]# gitlab-ctl stop
[root@gitlab ~]# yum install patch –y
[root@gitlab ~]# cd gitlab-cn/
[root@gitlab gitlab-cn]# git diff v11.11.0 v11.11.0-zh > ../11.11.0-zh.diff
[root@gitlab gitlab-cn]# cd ..
[root@gitlab ~]# patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 11.11.0-zh.diff
一路回车,知道自动结束即可。
4、 启动
[root@gitlab ~]# gitlab-ctl start
5、 登录查看
6、 添加ssh秘钥、创建新项目并设置webhook
a.在Jenkins服务器上生成密钥对,将公钥贴进gitlab
b.新建项目并设置webhook
web钩子
点击下方的保存。提示如下报错:
解决办法如下:
勾选“允许钩子和服务访问本地网络”,点击“保存修改”
再次测试,状态码返回200,表示配置成功。
四、Jenkins上配置自动构建的工程
五、安装Ansible及编写playbook
[root@deploy ~]# yum install ansible –y
[root@deploy playbook]# cat nginx_html.yml
---
- hosts: client
gather_facts: no
tasks:
- name: auto deploy nginx_html_file
copy: src=/opt/project/nginx_html_project/index.html dest=/usr/local/nginx/html/index.html
[root@deploy playbook]# pwd
/opt/playbook
一、更新代码测试
按照如下方法进行代码更新
代码更新完成后,登录Jenkins页面查看已自动触发webhook,进行自动发布
查看控制台输出:
在nginx服务器上访问测试:
结束。
下次更新Jenkins在构建完成后,进行邮件告警。