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