自动化发布静态页面
部署流水线
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南