微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Jenkins+GitLab+Ansible自动发布代码平台部署

Jenkins+GitLab+Ansible自动发布代码平台部署

服务器规划

服务器IP
主机名
环境
备注
192.168.71.3
gitlab
Gitlab



deploy主机与其他三台主机建立ssh互信

192.168.71.4
deployJenkins+Ansible
192.168.71.5
server-3Nginx-server-1
192.168.71.6server-4Nginx-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、 登录查看

image.png

6、 添加ssh秘钥、创建新项目并设置webhook

a.在Jenkins服务器上生成密钥对,将公钥贴进gitlab

image.png

image.png

b.新建项目并设置webhook

image.png

web钩子

image.png

点击下方的保存。提示如下报错:

image.png

解决办法如下:

image.png

勾选“允许钩子和服务访问本地网络”,点击“保存修改

image.png

再次测试,状态码返回200,表示配置成功。

image.png

image.png

四、Jenkins上配置自动构建的工程

image.png

image.png

image.png

五、安装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

一、更新代码测试

按照如下方法进行代码更新

image.png


代码更新完成后,登录Jenkins页面查看已自动触发webhook,进行自动发布

image.png

查看控制台输出

image.png

Nginx服务器上访问测试:

image.png

结束。

下次更新Jenkins在构建完成后,进行邮件告警。



版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐