一、首先需要准备两台服务器,一台放nginx集群,另一台放jenkins和gitlab
二、配置好nginx的端口不要冲突了,gitlab新建一个item。保证能够正常从使用
三、将代码push到item中,并且配置好脚本,将脚本放入到jenkins的文件夹中。保证jenkins的web端能够读取到
四,测试,进行jenkins构建,查看console进行排错,直到出现success。
五、打开nginx的指定location路径,查看是否文件以及存在,并且打开nginx网址,查看是否网页正常。
gitlab新建一个item。保证能够正常从使用

 

 

当在自己的项目写好之后,点击jenkins的立即构建可以把git仓库的文件拉取到指定的路径中,并且运行配置的脚本

服务器静态网页持续部署 静态网站部署_服务器

 

 

 

三、把写好的脚本放在刚刚配置的路径中。scripts/deploy_nginx.sh

脚本内容在最下面。
赋予脚本权限 
chmod 777 脚本

四、修改nginx集群中的文件路径。

/usr/local/nginx/conf的nginx.conf文件


不要忘记加分号

 

 

最后重新加载下 systemctl reload nginx.service

 

 

五、设置jenkins的权限是root,不然加载脚本的时候会报权限的错误


 

 

服务器静态网页持续部署 静态网站部署_html_02

 

 

修改之后重启一下jenkins 就可以了
systemctl restart jenkins.service


六、添加默认ssh的权限,这样就不会一直要输入密码


 

 

大体的任务就是这样,接下来只有看日志排查了。

 

服务器静态网页持续部署 静态网站部署_服务器静态网页持续部署_03

 

 

返回界面,在nginx的服务器中,查看对应的文件夹里是不是有从jenkins服务器中传输过去的文件

 

 然后进行访问就可以了。

错误经验总结:
(1):如果是这个错误,首先排查

这个解决方法是因为脚本中最后不要出现多余的空格和回车,会导致出现问题

服务器静态网页持续部署 静态网站部署_服务器静态网页持续部署_04

 

 如果是报这种错第一时间在两台服务器中进行测试,如果是他们的问题就一个一个排除。

我的错误点是因为我不小心搞错了我的脚本中web_server的ip写错了。所以报错。

把语句复制到服务器中单独拍错,很快知道原因的。

 

1 #1,进入代码目录,打包传输
 2 
 3 
 4 
 5 DATE=$(date +%Y-%m-%d-%H-%M-%S)
 6 web_server="192.168.56.201"
 7 
 8 #定义部署的功能函数
 9 #函数就是起一个名字,然后这个名字,包含很多linux命令的功能
10 #$WORKSPACE 是jenkins特有的变量,取得当前job得工作区绝对路径
11 get_code(){
12         cd $WORKSPACE && \
13         tar czf /opt/web-${DATE}.tar.gz ./*
14 
15 }
16 
17 #2.压缩后的代码发送给web集群组
18 scp_web_server(){
19 for hosts in $web_server
20 do
21         #jenkins执行如下命令,把自己本地代码压缩文件,scp发送给nginx服务器
22         scp /opt/web-${DATE}.tar.gz root@$hosts:/opt/
23         #jenkins机器,利用ssh命令,远程执行命令
24         ssh root@$hosts "mkdir -p /nginx_web_html/web-${DATE} && \
25         tar -zxf /opt/web-${DATE}.tar.gz -C /nginx_web_html/web-${DATE}
26         rm -rf /nginx_web_html/web && \
27         ln -s /nginx_web_html/web-${DATE} /nginx_web_html/web"
28 done
29 }
30 
31 #nginx机器上的网页根目录是: /nginx_web_html/web;
32 
33 #3.函数执行
34 deploy(){
35         get_code
36         scp_web_server
37 }
38 
39 #shell 使用函数。1,定义函数,2.执行函数
40 deploy