Jenkins+gitlab+nginx实现同步网页

环境:

服务 IP地址
gitlab 192.168.1.61
jenkins 192.168.1.63
nginx 192.168.1.64

1.在gitee码云上下载项目代码到gitlab服务器
随意下载html语言的代码

[root@gitlab web]# cd /root/
[root@gitlab ~]# git clone https://gitee.com/kangjie1209/monitor.git
[root@gitlab ~]# ls
anaconda-ks.cfg  monitor  www

2.gitlab服务器创建本地代码库并将刚下载好的代码放到本地代码块下

[root@gitlab ~]# mkdir /web
[root@gitlab ~]# cd /web/
[root@gitlab web]# cp -rp /root/monitor/* /web/

3.登入gitlab,创建新的项目(web1)
Jenkins+gitlab+nginx实现同步网页_第1张图片
Jenkins+gitlab+nginx实现同步网页_第2张图片
Jenkins+gitlab+nginx实现同步网页_第3张图片
4.在gitlab本地服务器上传代码到gitlab

[root@gitlab ~]# cd /web/
[root@gitlab web]# git init  //初始化
[root@gitlab web]# git remote add origin [email protected]:dev/web1.git //和web1项目建立连接(可以在项目主页复制项目链接)
[root@gitlab web]# git add .
[root@gitlab web]# git commit -m "add 01"
[root@gitlab web]# git push -u origin master //将master上传到gitlab

验证:刷新下网站查看内容是否上传到gitlab里面
Jenkins+gitlab+nginx实现同步网页_第4张图片
5.登录jenkins,新建自由项目web1
Jenkins+gitlab+nginx实现同步网页_第5张图片
Jenkins+gitlab+nginx实现同步网页_第6张图片
Jenkins+gitlab+nginx实现同步网页_第7张图片
完成后会在Jenkins服务器/var/lib/jenkins/workspace目录下会有gitlabt同名项目。

6.在jenkins上编写上传nginx的脚本

[root@jenkins ~]# mkdir /scripts
[root@jenkins ~]# vim /scripts/web.sh

#!/bin/sh
CODE_DIR=/var/lib/jenkins/workspace/web1/    
WEB_DIR=/usr/share/nginx/
IP=192.168.1.64
TIME=`date +%F-%H-%M-%S`
cd $CODE_DIR && tar zcf /tmp/web-${TIME}.tar.gz  ./*
scp /tmp/web-${TIME}.tar.gz $IP:$WEB_DIR
ssh root@$IP "cd $WEB_DIR && mkdir web-$TIME"
ssh root@$IP "cd $WEB_DIR && tar xf web-${TIME}.tar.gz -C web-$TIME && rm -rf web-${TIME}.tar.gz"
ssh root@$IP "cd $WEB_DIR && rm -rf html && ln -s web-$TIME html"

测试下脚本

[root@jenkins ~]# sh /scripts/web.sh

jenkins传输公钥到nginx

[root@jenkins ~]# ssh-copy-id [email protected]

测试:访问nginx网站

7.Jenkins关联脚本,实现自动上传
Jenkins+gitlab+nginx实现同步网页_第8张图片
Jenkins+gitlab+nginx实现同步网页_第9张图片
Jenkins+gitlab+nginx实现同步网页_第10张图片
Jenkins+gitlab+nginx实现同步网页_第11张图片
Jenkins+gitlab+nginx实现同步网页_第12张图片
8.jenkins关联gitlab,实现自动构建上传代码
Jenkins+gitlab+nginx实现同步网页_第13张图片
Jenkins+gitlab+nginx实现同步网页_第14张图片
Jenkins+gitlab+nginx实现同步网页_第15张图片
9.gitlab上设置令牌和url(上面需要黏贴的那两个地方)
web项目 – settings – integrations
Jenkins+gitlab+nginx实现同步网页_第16张图片
Jenkins+gitlab+nginx实现同步网页_第17张图片
10.测试(在gitlab更改或添加新内容,查看是否自动更新到nginx)

例如:
git add .
git commit -m “modify index.html”
git push -u origin master

你可能感兴趣的:(Linux架构)