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包放置在tomcatwebapps目录下

4、 修改catalina.sh文件,添加如下配置:

export JENKINS_HOME="/opt/jenkins"

5、 启动tomcat

6、 安装相应的插件

二、安装GitLab

步骤:

1、 配置gitlabyum

[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在构建完成后,进行邮件告警。