自动化发布静态页面

部署流水线
git + gitlab + jenkins + (发布动作,部署 shell脚本)

需求

一键部署静态页面到 web7 web8 ,且支持后续的页面更新

流程

jenkins部署流水线

1. 准备web7,web8,两个客户端,部署好nginx,支持静态页面推送
2. jenkins编写部署脚本,创建job,触发shell脚本执行
3. 确保jenkins可以拉取代码仓库
4. 确保jenkins可以和目标机器,实现免密通信(因为要远程执行命令,远程部署)

准备好代码仓库gitlab

1.登录码云,获取我们测试的静态文件
git@gitee.com:kangjie1209/monitor.git

2.导入到自己的gitlab


导入中

配置jenkins

创建自由风格job

配置gitlab连接

开发部署脚本

开发思路就是

1. 下载代码
2. 压缩代码,便于传输
3. 脚本提交到目标机器上


代码

#!/bin/bash
#author: www.yuchaoit.cn


# 1.进入代码目录,打包传输
DATE=$(date +%Y-%m-%d-%H-%M-%S)
web_server_list="10.0.0.7 10.0.0.8"

get_code(){
    cd ${WORKSPACE} && \
    tar czf /opt/web-${DATE}.tar.gz ./*
}


# 2.代码发送给web集群组
# 基于软连接,指向具体的文件目录,实现发版
scp_web_server(){
for hosts in $web_server_list
do
    scp /opt/web-${DATE}.tar.gz root@$hosts:/opt/
    ssh root@$hosts "mkdir -p /code/web-${DATE} && \
                                    tar -zxf /opt/web-${DATE}.tar.gz -C /code/web-${DATE}
                  rm -rf /code/web && \
                  ln -s /code/web-${DATE} /code/web"
done
}

deploy(){
        get_code
        scp_web_server
}

# 执行入口
deploy

脚本创建

[root@jenkins-100 /jenkins_shell]#chmod u+x deploy_nginx.sh 
[root@jenkins-100 /jenkins_shell]#ls
deploy_nginx.sh

jenkins调用执行shell脚本

确保web7-8环境正常

# 上述部署脚本,是将静态文件放在了 /code/web

# nginx配置
cat > /etc/nginx/conf.d/monitor.conf <<'EOF'
server{

    listen 80;
    server_name _;
    location / {
        root /code/web;
        index index.html;
    }

}
EOF

# 重启
pkill -9 nginx
systemctl restart nginx

测试jenkins构建

先确保和目标机器免密ssh
[root@jenkins-100 ~]#for i in 7 8 ;do ssh-copy-id root@10.0.0.$i;done

[root@jenkins-100 ~]#for i in 7 8 ;do ssh root@10.0.0.$i "hostname" ;done
web-7
web-8


确保2台机器开启nginx
for i in 7 8 ;do ssh root@10.0.0.$i 'pkill -9 nginx;systemctl restart nginx' ;done

nice页面出现了

试试代码更新

1.推送代码到代码仓库,更新
完成如下操作

- windows克隆代码(开发)
- 修改,提交版本(开发)
- 推送到gitlab(开发)
- 点击jenkins,实现页面自动更新 (运维)

模拟开发修改,提交代码

运维要操心什么么?点鼠标啊!

看看结果?给力呀

还有更高级的玩法吗?(构建触发器,webhook)

jenkins除了能让你鼠标一点,就实现更新,还有没有更nb的玩法?

比如连鼠标都不用点

jenkins触发器



拿到url和token

gitlab设置webhook

1,先允许钩子和服务到本地网络的请求

2添加rul和token

添加webhook结束

开发又来写代码了(push请求)自动触发更新动作

posted @   不太聪明的大鹅  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示