LiuYuan's Blog
This is LiuYuan's Blog
Toggle navigation
LiuYuan's Blog
Home
Docker相关
MySQL相关
Ansible相关
维护脚本相关
Windows系统脚本
Python相关
Nginx相关
About Me
Archives
Tags
查询harbor仓库自动更新脚本
2024-06-19 16:04:41
29
0
0
admin
#!/bin/bash # 创建日志文件目录 log_dir="/data/update_logs" #mkdir -p "$log_dir" # 日志文件路径,按日切割 log_file="$log_dir/update_$(date +%Y%m%d).log" # 获取当前时间 current_time=$(date +"%Y-%m-%d %H:%M:%S") # 获取后端镜像仓库中最新的版本号(去掉前缀"v") v1=$(curl -u user:passwd -X GET "https://harbor.test.com.cn/api/v2.0/projects/children/repositories/tx-svc-wxchat-online/artifacts" | jq -r 'sort_by(.push_time) | .[-1].tags[0].name' | sed 's/v//') # 获取当前正在运行的后端容器的版本号 v2=$(docker inspect --format='{{ index .Config.Image }}' tx-svc-wxchat-online | awk -F':' '{print $NF}' | cut -c2-) # 检查后端是否需要更新 if [ "$v1" -gt "$v2" ]; then echo "$current_time 需要更新,后端最新版本号:$v1" >> "$log_file" # 执行后端更新操作 ansible-playbook /data/update_server.yaml --extra-vars "tag=$v1" >> "$log_file" 2>&1 # 发送企业微信消息 webhook_url="https://123/123" message="后端镜像更新成功,新版本:$v1" curl -s -H "Content-Type: application/json" -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"$message\"}}" "$webhook_url" >> "$log_file" 2>&1 else echo "$current_time 后端无需更新,当前版本号:$v2" >> "$log_file" fi # 获取前端镜像仓库中最新的版本号(去掉前缀"v") v3=$(curl -u user:passwd -X GET "https://harbor.test.com.cn/api/v2.0/projects/children/repositories/tx-wxchat-admin-online/artifacts" | jq -r 'sort_by(.push_time) | .[-1].tags[0].name' | sed 's/v//') # 获取当前正在运行的前端容器的版本号 v4=$(docker inspect --format='{{ index .Config.Image }}' tx-wxchat-admin-online | awk -F':' '{print $NF}' | cut -c2-) # 检查前端是否需要更新 if [ "$v3" -gt "$v4" ]; then echo "$current_time 需要更新,前端最新版本号:$v3" >> "$log_file" # 执行前端更新操作 ansible-playbook /data/update_web.yaml --extra-vars "tag=$v3" >> "$log_file" 2>&1 # 发送企业微信消息 webhook_url="https://123/123" message="前端镜像更新成功,新版本:$v3" curl -s -H "Content-Type: application/json" -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"$message\"}}" "$webhook_url" >> "$log_file" 2>&1 else echo "$current_time 前端无需更新,当前版本号:$v4" >> "$log_file" fi # 输出完成信息到日志 echo "$current_time 更新完成,日志存储在 $log_file"
Pre:
FTP/MySQL
Next:
MySQL安装
0
likes
29
Weibo
Wechat
Tencent Weibo
QQ Zone
RenRen
Footer
Table of content