add
This commit is contained in:
13
19-上海雷视/1-minio-dockercompose.yml
Normal file
13
19-上海雷视/1-minio-dockercompose.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
version: '2'
|
||||
|
||||
services:
|
||||
minio1:
|
||||
ports:
|
||||
- "9000:9000"
|
||||
- "9001:9001"
|
||||
image: '103.0.180.201:8033/cmii/minio:2023.5.4'
|
||||
environment:
|
||||
- MINIO_ROOT_USER=cmii
|
||||
- MINIO_ROOT_PASSWORD=B#923fC7mk
|
||||
volumes:
|
||||
- /home/cyly/minio-pv/:/mnt/data
|
||||
42
19-上海雷视/1-minio-init.sh
Normal file
42
19-上海雷视/1-minio-init.sh
Normal file
@@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
# 替换namespace
|
||||
# 替换minio的实际地址和端口
|
||||
# 修改rabbitmq的实际地址和端口,需要暴露出来
|
||||
|
||||
curl -x socks5h://103.0.180.82:9997 https://dl.min.io/client/mc/release/linux-amd64/mc
|
||||
|
||||
export tenant_name=shls
|
||||
|
||||
mc alias set ${tenant_name} http://103.0.180.201:9000 cmii B#923fC7mk
|
||||
|
||||
mc mb ${tenant_name}/jadenq ${tenant_name}/tus ${tenant_name}/thumbnail ${tenant_name}/pub-cms ${tenant_name}/live-srs-hls/ ${tenant_name}/mission/ ${tenant_name}/surveillance ${tenant_name}/playback ${tenant_name}/tower ${tenant_name}/modelprocess ${tenant_name}/srs-hls ${tenant_name}/live-cluster-hls
|
||||
|
||||
|
||||
# mc alias set demo https://oss.demo.uavcmlc.com:18000 cmii B#923fC7mk
|
||||
#
|
||||
# mc cp -r demo/jadenq/scenariomock/xg/ ${tenant_name}/jadenq/scenariomock/xg/
|
||||
# mc cp -r demo/jadenq/application/file/中移凌云使用手册.pdf ${tenant_name}/jadenq/application/file/中移凌云使用手册.pdf
|
||||
# mc cp -r demo/jadenq/defimage/def.jpg ${tenant_name}/jadenq/defimage/def.jpg
|
||||
# mc cp -r demo/pub-cms/application/img/ ${tenant_name}/pub-cms/application/img/
|
||||
|
||||
|
||||
mc admin config set ${tenant_name} notify_amqp:1 delivery_mode="2" exchange_type="direct" no_wait="off" queue_dir="" queue_limit="0" url="amqp://admin:nYcRN91r._hj@103.0.180.201:35672" auto_deleted="off" durable="on" exchange="cmii.chinamobile.minio.event" internal="off" mandatory="off" routing_key="cmii.chinamobile.material.warehouse"
|
||||
|
||||
mc admin service restart ${tenant_name}
|
||||
|
||||
mc event add ${tenant_name}/mission arn:minio:sqs::1:amqp --event put
|
||||
|
||||
mc event add ${tenant_name}/modelprocess arn:minio:sqs::1:amqp --event put
|
||||
|
||||
mc event add ${tenant_name}/live-srs-hls arn:minio:sqs::1:amqp --event put
|
||||
|
||||
mc event add ${tenant_name}/playback arn:minio:sqs::1:amqp --event put
|
||||
|
||||
mc event add ${tenant_name}/live-cluster-hls arn:minio:sqs::1:amqp --event put
|
||||
|
||||
mc event add ${tenant_name}/surveillance arn:minio:sqs::1:amqp --event put
|
||||
|
||||
mc event add ${tenant_name}/tus arn:minio:sqs::1:amqp --event delete
|
||||
|
||||
mc ilm add --expiry-days "1" ${tenant_name}/tus
|
||||
|
||||
29
19-上海雷视/1-proxy-setup.ps1
Normal file
29
19-上海雷视/1-proxy-setup.ps1
Normal file
@@ -0,0 +1,29 @@
|
||||
|
||||
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
|
||||
|
||||
$basePath = $PWD
|
||||
|
||||
Write-Host "Current Running Path is $basePath"
|
||||
# This is a PowerShell script to run port_win64.exe with admin privileges and keep running in the background
|
||||
|
||||
Write-Host "Start the port forwarding !"
|
||||
Start-Process -FilePath "$basePath\port_win64.exe" -ArgumentList "udp listen:0.0.0.0:53 conn:223.5.5.5:53" -Verb RunAs -WindowStyle Hidden
|
||||
Start-Process -FilePath "$basePath\port_win64.exe" -ArgumentList "tcp listen:0.0.0.0:80 conn:42.192.52.227:80" -Verb RunAs -WindowStyle Hidden
|
||||
Start-Process -FilePath "$basePath\port_win64.exe" -ArgumentList "tcp listen:0.0.0.0:9000 conn:42.192.52.227:9000" -Verb RunAs -WindowStyle Hidden
|
||||
Start-Process -FilePath "$basePath\port_win64.exe" -ArgumentList "tcp listen:0.0.0.0:20672 conn:42.192.52.227:20672" -Verb RunAs -WindowStyle Hidden
|
||||
Start-Process -FilePath "$basePath\port_win64.exe" -ArgumentList "tcp listen:0.0.0.0:20678 conn:42.192.52.227:20678" -Verb RunAs -WindowStyle Hidden
|
||||
|
||||
Write-Host "Start the socks !"
|
||||
Start-Process -FilePath "$basePath\socks5_win64.exe" -ArgumentList "9997" -Verb RunAs -WindowStyle Hidden
|
||||
# Keep script running until terminal is closed
|
||||
Write-Host ""
|
||||
netstat -ano | findstr 53
|
||||
Write-Host ""
|
||||
netstat -ano | findstr 9000
|
||||
Write-Host ""
|
||||
netstat -ano | findstr 20672
|
||||
Write-Host ""
|
||||
netstat -ano | findstr 20678
|
||||
Write-Host ""
|
||||
|
||||
$null = Read-Host "Press Enter to close this script"
|
||||
31
19-上海雷视/11-nginx-offline-map.conf
Normal file
31
19-上海雷视/11-nginx-offline-map.conf
Normal file
@@ -0,0 +1,31 @@
|
||||
server {
|
||||
listen 8889;
|
||||
server_name localhost;
|
||||
#允许跨域请求的域,*代表所有
|
||||
add_header 'Access-Control-Allow-Origin' *;
|
||||
#允许带上cookie请求
|
||||
add_header 'Access-Control-Allow-Credentials' 'true';
|
||||
#允许请求的方法,比如 GET/POST/PUT/DELETE
|
||||
add_header 'Access-Control-Allow-Methods' *;
|
||||
#允许请求的header
|
||||
add_header 'Access-Control-Allow-Headers' *;
|
||||
|
||||
location /electronic {
|
||||
root /root/offline_map/;
|
||||
autoindex on;
|
||||
add_header Access-Control-Allow-Origin *;
|
||||
add_header Access-Control-Allow-Methods 'GET,POST';
|
||||
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
|
||||
}
|
||||
|
||||
location /satellite {
|
||||
root /root/offline_map/;
|
||||
autoindex on;
|
||||
add_header Access-Control-Allow-Origin *;
|
||||
add_header Access-Control-Allow-Methods 'GET,POST';
|
||||
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
|
||||
}
|
||||
|
||||
# http://20.4.13.81:8889/electronic/{z}/{x}/{y}.png
|
||||
# http://20.4.13.81:8889/satellite/{z}/{x}/{y}.png
|
||||
}
|
||||
147
19-上海雷视/2-imageDownSync.sh
Normal file
147
19-上海雷视/2-imageDownSync.sh
Normal file
@@ -0,0 +1,147 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
### 需要修改以下的内容 ###
|
||||
#### 需要修改以下的内容 ###
|
||||
#### 需要修改以下的内容 ###
|
||||
|
||||
cmlc_app_image_list="cmlc-app-images-4.1.6.txt" # 需要修改版本
|
||||
rancher_image_list="kubernetes-images-2.5.7-1.20.4.txt" # 一般不需要修改
|
||||
middleware_image_list="middleware-images.txt" # 一般不需要修改
|
||||
#DockerRegisterDomain="20.47.129.116:8033" # 需要根据实际修改
|
||||
DockerRegisterDomain="103.0.180.201:8033" # 需要根据实际修改
|
||||
HarborAdminPass=V2ryStr@ngPss # 需要跟第一脚本中的密码保持一致
|
||||
|
||||
#### 需要修改以上的内容 ###
|
||||
#### 需要修改以上的内容 ###
|
||||
#### 需要修改以上的内容 ###
|
||||
|
||||
downloadAllNeededImages() {
|
||||
while [[ $# > 0 ]]; do
|
||||
pulled=""
|
||||
while IFS= read -r i; do
|
||||
[ -z "${i}" ] && continue
|
||||
echo "开始下载:${i}"
|
||||
if docker pull "${i}" >/dev/null 2>&1; then
|
||||
echo "Image pull success: ${i}"
|
||||
pulled="${pulled} ${i}"
|
||||
else
|
||||
if docker inspect "${i}" >/dev/null 2>&1; then
|
||||
pulled="${pulled} ${i}"
|
||||
else
|
||||
echo "Image pull failed: ${i}"
|
||||
fi
|
||||
fi
|
||||
echo "-------------------------------------------------"
|
||||
done <"${1}"
|
||||
shift
|
||||
done
|
||||
}
|
||||
|
||||
downloadAllNeededImagesAndCompress() {
|
||||
while [[ $# > 0 ]]; do
|
||||
pulled=""
|
||||
while IFS= read -r i; do
|
||||
[ -z "${i}" ] && continue
|
||||
echo "开始下载:${i}"
|
||||
if docker pull "${i}" >/dev/null 2>&1; then
|
||||
echo "Image pull success: ${i}"
|
||||
pulled="${pulled} ${i}"
|
||||
else
|
||||
if docker inspect "${i}" >/dev/null 2>&1; then
|
||||
pulled="${pulled} ${i}"
|
||||
else
|
||||
echo "Image pull failed: ${i}"
|
||||
fi
|
||||
fi
|
||||
echo "-------------------------------------------------"
|
||||
done <"${1}"
|
||||
compressPacName="$(echo ${1} | cut -d"." -f1).tar.gz"
|
||||
|
||||
echo "Creating ${compressPacName} with $(echo ${pulled} | wc -w | tr -d '[:space:]') images"
|
||||
docker save $(echo ${pulled}) | gzip --stdout > ${compressPacName}
|
||||
|
||||
shift
|
||||
done
|
||||
|
||||
|
||||
echo "已经完成打包工作!"
|
||||
}
|
||||
|
||||
pushRKEImageToHarbor(){
|
||||
linux_images=()
|
||||
while IFS= read -r i; do
|
||||
[ -z "${i}" ] && continue
|
||||
linux_images+=("${i}");
|
||||
done < "${rancher_image_list}"
|
||||
|
||||
docker login -u admin -p ${HarborAdminPass} ${DockerRegisterDomain}
|
||||
|
||||
for i in "${linux_images[@]}"; do
|
||||
[ -z "${i}" ] && continue
|
||||
case $i in
|
||||
*/*)
|
||||
image_name="${DockerRegisterDomain}/${i}"
|
||||
;;
|
||||
*)
|
||||
image_name="${DockerRegisterDomain}/rancher/${i}"
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "开始镜像至私有仓库推送:${image_name}"
|
||||
docker tag "${i}" "${image_name}"
|
||||
docker push "${image_name}"
|
||||
echo "-------------------------------------------------"
|
||||
done
|
||||
}
|
||||
|
||||
pushCMLCAPPImageToHarbor(){
|
||||
app_images=()
|
||||
while IFS= read -r i; do
|
||||
[ -z "${i}" ] && continue
|
||||
app_images+=("${i}");
|
||||
done < "${cmlc_app_image_list}"
|
||||
|
||||
docker login -u admin -p ${HarborAdminPass} ${DockerRegisterDomain}
|
||||
for app in "${app_images[@]}"; do
|
||||
[ -z "${app}" ] && continue
|
||||
image_name="${DockerRegisterDomain}/$(echo ${app} | cut -d"/" -f2-8)"
|
||||
echo "开始镜像至私有仓库推送:${image_name}"
|
||||
docker tag "${app}" "${image_name}"
|
||||
docker push "${image_name}"
|
||||
echo "-------------------------------------------------"
|
||||
done
|
||||
}
|
||||
|
||||
pushMiddlewareImageToHarbor(){
|
||||
middleware_image=()
|
||||
while IFS= read -r i; do
|
||||
[ -z "${i}" ] && continue
|
||||
middleware_image+=("${i}");
|
||||
done < "${middleware_image_list}"
|
||||
|
||||
docker login -u admin -p ${HarborAdminPass} ${DockerRegisterDomain}
|
||||
for app in "${middleware_image[@]}"; do
|
||||
[ -z "${app}" ] && continue
|
||||
case ${app} in
|
||||
*/*/*)
|
||||
image_name="${DockerRegisterDomain}/cmii/$(echo "${app}" | cut -d"/" -f3-8)"
|
||||
;;
|
||||
*/*)
|
||||
image_name="${DockerRegisterDomain}/cmii/$(echo "${app}" | cut -d"/" -f2-8)"
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "开始镜像至私有仓库推送:${image_name}"
|
||||
docker tag "${app}" "${image_name}"
|
||||
docker push "${image_name}"
|
||||
echo "-------------------------------------------------"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
#downloadAllNeededImagesAndCompress "${middleware_image_list}"
|
||||
#downloadAllNeededImages "${rancher_image_list}"
|
||||
|
||||
#pushRKEImageToHarbor
|
||||
#pushCMLCAPPImageToHarbor
|
||||
pushMiddlewareImageToHarbor
|
||||
3
19-上海雷视/7-nacos-user.sh
Normal file
3
19-上海雷视/7-nacos-user.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
# nacos的用户名为 developer 密码为 N@cos14Good
|
||||
|
||||
INSERT INTO `cmii_nacos_config`.`users`(`username`, `password`, `enabled`) VALUES ('developer', '$2a$10$4wDsWyBohXZ2aoTazyAkDOBvspbJijS30skdrd0kGzp1aRgxNLfqa', 1);
|
||||
396
19-上海雷视/image-sync-simple.sh
Normal file
396
19-上海雷视/image-sync-simple.sh
Normal file
@@ -0,0 +1,396 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 约定内容
|
||||
|
||||
NeedUploadFolder=99
|
||||
IsUpload=99
|
||||
UploadImageName=""
|
||||
ImageListName=""
|
||||
ImageTarName=""
|
||||
ImageName=""
|
||||
ImageTag=""
|
||||
InnerIPv4CIDR=""
|
||||
InnerIPv6CIDR=""
|
||||
InnerIPv4=""
|
||||
InnerIPv6=""
|
||||
CmiiImagePrefix="harbor.cdcyy.com.cn/cmii/"
|
||||
OSS_URL="https://oss.demo.uavcmlc.com/cmlc-installation/tmp/"
|
||||
Custom_Client_Harbor="REPLACE:8033"
|
||||
namespace=shls
|
||||
new_tag=
|
||||
app_name=
|
||||
custom_prefix=
|
||||
|
||||
#######################################
|
||||
# description
|
||||
# Globals:
|
||||
# ImageName
|
||||
# ImageTag
|
||||
# ImageTarName
|
||||
# RANDOM
|
||||
# UploadImageName
|
||||
# Arguments:
|
||||
# None
|
||||
#######################################
|
||||
get_image_tar_name() {
|
||||
|
||||
# harbor.cdcyy.com.cn/cmii/cmii-uav-oauth:4.1.6
|
||||
ImageName=$(echo $UploadImageName | cut -d ":" -f1 | cut -d"/" -f3)
|
||||
ImageTag=$(echo $UploadImageName | cut -d ":" -f2)
|
||||
local currentDate=$(date +'%Y-%m-%d')
|
||||
local random_number=$((RANDOM % 900 + 100))
|
||||
|
||||
ImageTarName="$ImageName=$ImageTag=$currentDate=$random_number.tar.gz"
|
||||
}
|
||||
|
||||
#######################################
|
||||
# description
|
||||
# Globals:
|
||||
# ImageName
|
||||
# ImageTag
|
||||
# ImageTarName
|
||||
# UploadImageName
|
||||
# Arguments:
|
||||
# None
|
||||
#######################################
|
||||
get_image_name_from_tar() {
|
||||
|
||||
# cmii-uav-oauth_4.1.6-0918_20230918_123.tar.gz
|
||||
|
||||
ImageName=$(echo $ImageTarName | cut -d "=" -f1)
|
||||
ImageTag=$(echo $ImageTarName | cut -d"=" -f2)
|
||||
|
||||
UploadImageName="$ImageName:$ImageTag"
|
||||
}
|
||||
|
||||
# 获取服务器的公网IP地址
|
||||
get_Internal_IP_CIDR() {
|
||||
|
||||
local interface_prefix=("[[:space:]]eth[0-9]{1,2}" "[[:space:]]ens[0-9]{1,3}" "[[:space:]]eno[0-9]{1,3}" "[[:space:]]enp[0-9]{1,2}")
|
||||
local real_interface="eth90"
|
||||
|
||||
for interface in "${interface_prefix[@]}"; do
|
||||
echo $(ip link show) | grep -oE ${interface} | head -1
|
||||
if [[ $? -eq 0 ]]; then
|
||||
real_interface=$(echo $(ip link show) | grep -oE ${interface} | head -1 | cut -d" " -f2)
|
||||
echo "当前主机的真实内网网卡为 => [$real_interface]"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# 提取IPv4地址(CIDR格式)
|
||||
local ipv4_regex="inet[[:space:]](25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/[0-9]{1,2}"
|
||||
|
||||
# 提取IPv6地址(CIDR格式)
|
||||
local ipv6_regex="inet6[[:space:]]([0-9a-fA-F]{0,4}(:[0-9a-fA-F]{0,4}){1,7})\/[0-9]{1,3}"
|
||||
|
||||
# 查找IPv4地址
|
||||
local inner_ipv4=$(echo $(ip addr show $real_interface) | grep -oE $ipv4_regex | cut -d" " -f2)
|
||||
InnerIPv4CIDR=$inner_ipv4
|
||||
echo "Interface: $real_interface, IPv4 Address: $inner_ipv4"
|
||||
|
||||
# 查找IPv6地址
|
||||
local inner_ipv6=$(echo $(ip addr show $real_interface) | grep -oE $ipv6_regex | cut -d" " -f2)
|
||||
InnerIPv6CIDR=$inner_ipv6
|
||||
echo "Interface: $real_interface, IPv4 Address: $inner_ipv6"
|
||||
|
||||
}
|
||||
|
||||
#######################################
|
||||
# description
|
||||
# Globals:
|
||||
# InnerIPv4
|
||||
# InnerIPv4CIDR
|
||||
# InnerIPv6
|
||||
# InnerIPv6CIDR
|
||||
# Arguments:
|
||||
# None
|
||||
#######################################
|
||||
get_Internal_IP() {
|
||||
|
||||
# get_Internal_IP_CIDR
|
||||
|
||||
InnerIPv4=103.0.180.201
|
||||
InnerIPv6=$(echo $InnerIPv6CIDR | cut -d "/" -f1)
|
||||
|
||||
echo "服务器的内网IPv4地址为 $InnerIPv4"
|
||||
echo "服务器的内网IPv6地址为 $InnerIPv6"
|
||||
|
||||
}
|
||||
|
||||
parse_args(){
|
||||
if [ "$1" == "" ]; then
|
||||
echo "no zip file in error!"
|
||||
exit 233
|
||||
fi
|
||||
local image_name="$1"
|
||||
|
||||
# cmii-uav-surveillance=5.2.0-27031-cqga=2024-03-04=573.tar.gz
|
||||
# cmii-uav-mqtthandler=5.4.0-031201=2024-03-12=138.tar.gz
|
||||
app_name=$(echo $image_name | cut -d "=" -f1)
|
||||
new_tag=$(echo $image_name | cut -d "=" -f2)
|
||||
}
|
||||
|
||||
|
||||
update_image_tag(){
|
||||
if [ "$new_tag" == "" ]; then
|
||||
echo "new tag error!"
|
||||
exit 233
|
||||
fi
|
||||
|
||||
local image_prefix=$(kubectl -n ${namespace} get deployment "${app_name}" -o=jsonpath='{.spec.template.spec.containers[*].image}' | cut -d":" -f1)
|
||||
|
||||
echo "image grep is => ${image_prefix}"
|
||||
|
||||
echo "start to update ${namespace} ${app_name} to ${new_tag} !"
|
||||
echo ""
|
||||
kubectl -n ${namespace} patch deployment "${app_name}" -p "{\"spec\":{\"template\":{\"spec\":{\"containers\":[{\"name\":\"${app_name}\",\"image\": \"${custom_prefix}$app_name:${new_tag}\"}]}}}}"
|
||||
echo ""
|
||||
echo "start to wait for 3 seconds!"
|
||||
sleep 3
|
||||
local image_new=$(kubectl -n ${namespace} get deployment "${app_name}" -o=jsonpath='{.spec.template.spec.containers[*].image}')
|
||||
echo ""
|
||||
echo "new image are => $image_new"
|
||||
echo ""
|
||||
}
|
||||
|
||||
#######################################
|
||||
# description
|
||||
# Globals:
|
||||
# _m_opts
|
||||
# Arguments:
|
||||
# None
|
||||
#######################################
|
||||
_math() {
|
||||
_m_opts="$@"
|
||||
printf "%s" "$((_m_opts))"
|
||||
}
|
||||
|
||||
# 前文内容
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
-fu | --fileupload)
|
||||
NeedUploadFolder=1
|
||||
ImageListName=${2}
|
||||
shift # past argument
|
||||
;;
|
||||
-fd | --filedownload)
|
||||
NeedUploadFolder=2
|
||||
ImageListName=${2}
|
||||
shift # past argument
|
||||
;;
|
||||
-u | --upload)
|
||||
IsUpload=1
|
||||
UploadImageName="${2}"
|
||||
shift # past argument
|
||||
;;
|
||||
-d | --download)
|
||||
IsUpload=2
|
||||
ImageTarName="${2}"
|
||||
shift # past argument
|
||||
;;
|
||||
-h | --harbor)
|
||||
Custom_Client_Harbor="${2}"
|
||||
shift # past argument
|
||||
;;
|
||||
*)
|
||||
# unknown option
|
||||
;;
|
||||
esac
|
||||
shift # past argument or value
|
||||
done
|
||||
|
||||
#######################################
|
||||
# description
|
||||
# Globals:
|
||||
# ImageTarName
|
||||
# UploadImageName
|
||||
# Arguments:
|
||||
# None
|
||||
#######################################
|
||||
Download_Compress_OSS_Image() {
|
||||
|
||||
# upload
|
||||
echo "【上传】 - 需要处理的镜像名称为 => $UploadImageName"
|
||||
echo ""
|
||||
echo "【上传】 - 开始下载镜像!"
|
||||
echo ""
|
||||
if docker pull "${UploadImageName}" >/dev/null 2>&1; then
|
||||
echo "下载-镜像下载成功! => $UploadImageName"
|
||||
else
|
||||
if docker inspect "${UploadImageName}" >/dev/null 2>&1; then
|
||||
echo "下载-镜像已经存在 => $UploadImageName"
|
||||
else
|
||||
echo ""
|
||||
echo "下载-镜像下载 失败! => $UploadImageName"
|
||||
echo "下载-镜像下载 失败! => $UploadImageName"
|
||||
echo ""
|
||||
return 233
|
||||
fi
|
||||
fi
|
||||
echo ""
|
||||
|
||||
get_image_tar_name
|
||||
echo "【上传】 - 将要把镜像压缩为 => $ImageTarName"
|
||||
docker save $UploadImageName | gzip --stdout >${ImageTarName}
|
||||
echo "【上传】 - 压缩成功 ! $(ls | grep ${ImageTarName})"
|
||||
echo""
|
||||
|
||||
echo "【上传】 - 开始上传至OSS中!"
|
||||
mc cp ./${ImageTarName} demo/cmlc-installation/tmp/
|
||||
echo "【上传】 - 上传OSS成功 => $(mc ls demo/cmlc-installation/tmp/ | grep ${ImageTarName})"
|
||||
echo""
|
||||
|
||||
}
|
||||
#######################################
|
||||
# description
|
||||
# Globals:
|
||||
# CmiiImagePrefix
|
||||
# ImageTarName
|
||||
# InnerIPv4
|
||||
# OSS_URL
|
||||
# UploadImageName
|
||||
# custom_prefix
|
||||
# Arguments:
|
||||
# None
|
||||
# Returns:
|
||||
# <unknown> ...
|
||||
#######################################
|
||||
UnCompress_Upload_Harbor() {
|
||||
|
||||
echo "【下载】 - 需要处理的压缩包名称为 => $ImageTarName"
|
||||
|
||||
echo "【下载】 - 开始下载 ↓"
|
||||
curl -x socks5h://103.0.180.82:9997 "$OSS_URL$ImageTarName" -o ${ImageTarName}
|
||||
if [[ $? -ne 0 ]]; then
|
||||
echo "【下载】- 下载镜像失败!退出!"
|
||||
return
|
||||
fi
|
||||
echo ""
|
||||
|
||||
echo "【下载】 - 开始解压压缩包 "
|
||||
docker load <"${ImageTarName}"
|
||||
echo ""
|
||||
|
||||
get_Internal_IP
|
||||
echo "【下载】 - 开始上传镜像到本地的镜像仓库中 => $InnerIPv4:8033 "
|
||||
custom_prefix="$InnerIPv4:8033/cmii/"
|
||||
echo ""
|
||||
|
||||
get_image_name_from_tar
|
||||
echo "【下载】 - 解析得到的 私有镜像地址为 => $custom_prefix$UploadImageName"
|
||||
docker tag "$CmiiImagePrefix${UploadImageName}" "$custom_prefix$UploadImageName"
|
||||
|
||||
echo "【下载】 - 开始上传镜像到私有仓库 ↓"
|
||||
docker login -u admin -p V2ryStr@ngPss "$InnerIPv4:8033"
|
||||
echo ""
|
||||
echo "【下载】 - 开始推送到私有仓库! "
|
||||
docker push "$custom_prefix$UploadImageName"
|
||||
echo ""
|
||||
echo ""
|
||||
|
||||
}
|
||||
|
||||
if [[ $NeedUploadFolder == 1 ]]; then
|
||||
# 上传的是一个目录
|
||||
echo "【上传】 - 上传的文件目录为 => ${ImageListName}"
|
||||
|
||||
currentDate=$(date +'%Y-%m-%d')
|
||||
random_number=$((RANDOM % 900 + 100))
|
||||
tar_image_txt_file="$currentDate-$random_number.txt"
|
||||
echo "【上传】 - 复制文件目录为临时文件 => $tar_image_txt_file"
|
||||
touch $tar_image_txt_file
|
||||
echo ""
|
||||
echo ""
|
||||
|
||||
while IFS= read -r i; do
|
||||
[ -z "${i}" ] && continue
|
||||
|
||||
UploadImageName=${i}
|
||||
Download_Compress_OSS_Image
|
||||
|
||||
# 写入压缩文件名称
|
||||
echo "$ImageTarName" >>"$tar_image_txt_file"
|
||||
|
||||
echo "-------------------------------------------------"
|
||||
done <"${ImageListName}"
|
||||
echo ""
|
||||
|
||||
echo "【上传】 - 上传压缩文件名称列表至OSS中 !"
|
||||
mc cp ./"$tar_image_txt_file" demo/cmlc-installation/tmp/
|
||||
echo "【上传】 - 上传OSS成功 => $(mc ls demo/cmlc-installation/tmp/ | grep "${tar_image_txt_file}")"
|
||||
echo ""
|
||||
|
||||
echo "【上传】 - 请在目标Master主机执行如下命令 ↓↓↓↓↓↓"
|
||||
echo ""
|
||||
echo ""
|
||||
echo "source <(curl -sL https://b2.107421.xyz/image-sync.sh) -fd "$OSS_URL$tar_image_txt_file""
|
||||
echo ""
|
||||
echo ""
|
||||
|
||||
elif [[ $NeedUploadFolder == 2 ]]; then
|
||||
echo "【下载】- 需要下载的压缩包文件为 => $ImageListName"
|
||||
tar_image_txt_file=$(echo ${ImageListName} | cut -d"/" -f6)
|
||||
curl -x socks5h://103.0.180.82:9997 ${ImageListName} -o ${tar_image_txt_file}
|
||||
image_count=0
|
||||
|
||||
while IFS= read -r i; do
|
||||
[ -z "${i}" ] && continue
|
||||
|
||||
ImageTarName=${i}
|
||||
UnCompress_Upload_Harbor
|
||||
image_count="$(_math "$image_count" + 1)"
|
||||
|
||||
echo "-------------------------------------------------"
|
||||
|
||||
echo "stat to update image tag!"
|
||||
parse_args $ImageTarName
|
||||
update_image_tag
|
||||
done <"${tar_image_txt_file}"
|
||||
echo ""
|
||||
|
||||
echo "【下载】 - 请等待流程结束 ↓"
|
||||
_sleep_c="500"
|
||||
for (( i=1; i<$image_count; i++ )) ; do
|
||||
_sleep_c="$(_math "$_sleep_c" + 500)"
|
||||
done
|
||||
echo "【下载】 - 共有 【 $image_count 】个镜像, 等待上传结束 => $_sleep_c 秒"
|
||||
while [ "$_sleep_c" -ge "0" ]; do
|
||||
printf "\r \r"
|
||||
printf -- "%b" "$_sleep_c"
|
||||
_sleep_c="$(_math "$_sleep_c" - 1)"
|
||||
sleep 1
|
||||
done
|
||||
printf "\r"
|
||||
|
||||
fi
|
||||
|
||||
if [[ $IsUpload == 1 ]]; then
|
||||
Download_Compress_OSS_Image
|
||||
echo "【上传】 - 请在目标Master主机执行如下命令 ↓↓↓↓↓↓"
|
||||
echo ""
|
||||
echo ""
|
||||
echo "source <(curl -sL https://b2.107421.xyz/image-sync.sh) -d $ImageTarName"
|
||||
echo ""
|
||||
echo ""
|
||||
Client_Harbor_Address="$Custom_Client_Harbor/cmii/$ImageName:$ImageTag"
|
||||
echo "【上传】 - 手动命令执行如下, 目标镜像全程地址为 => $Client_Harbor_Address"
|
||||
echo ""
|
||||
echo "wget $OSS_URL$ImageTarName && docker load < $ImageTarName && docker tag ${UploadImageName} $Client_Harbor_Address && docker push $Client_Harbor_Address"
|
||||
echo ""
|
||||
echo ""
|
||||
elif [[ $IsUpload == 2 ]];then
|
||||
# download
|
||||
UnCompress_Upload_Harbor
|
||||
|
||||
echo "【下载】 - 请等待流程结束 ↓"
|
||||
_sleep_c="500"
|
||||
while [ "$_sleep_c" -ge "0" ]; do
|
||||
printf "\r \r"
|
||||
printf -- "%b" "$_sleep_c"
|
||||
_sleep_c="$(_math "$_sleep_c" - 1)"
|
||||
sleep 1
|
||||
done
|
||||
printf "\r"
|
||||
fi
|
||||
269
19-上海雷视/image-sync.sh
Normal file
269
19-上海雷视/image-sync.sh
Normal file
@@ -0,0 +1,269 @@
|
||||
#!/bin/bash
|
||||
|
||||
image_list=(
|
||||
cmlc=cmii=cmii-admin-data=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-admin-gateway=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-admin-user=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-app-release=4.2.0-validation.tar.gz
|
||||
cmlc=cmii=cmii-live-operator=5.2.0.tar.gz
|
||||
cmlc=cmii=cmii-open-gateway=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-suav-platform-supervision=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-suav-platform-supervisionh5=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-suav-supervision=5.2.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-airspace=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-alarm=5.3.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-autowaypoint=4.1.6-cm-0828.tar.gz
|
||||
cmlc=cmii=cmii-uav-brain=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-cloud-live=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-cms=5.3.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-data-post-process=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-developer=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-device=5.4.0-26905.tar.gz
|
||||
cmlc=cmii=cmii-uav-emergency=5.3.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-gateway=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-gis-server=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-grid-datasource=5.2.0-24810.tar.gz
|
||||
cmlc=cmii=cmii-uav-grid-engine=5.1.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-grid-manage=5.1.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-industrial-portfolio=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-integration=5.4.0-0228.tar.gz
|
||||
cmlc=cmii=cmii-uav-kpi-monitor=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-logger=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-material-warehouse=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-mission=5.4.0-26462-0228.tar.gz
|
||||
cmlc=cmii=cmii-uav-mqtthandler=5.4.0-26768.tar.gz
|
||||
cmlc=cmii=cmii-uav-multilink=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-notice=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-oauth=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-platform=5.4.0-hotfix.tar.gz
|
||||
cmlc=cmii=cmii-uav-platform-ai-brain=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-platform-armypeople=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-platform-base=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-platform-cms-portal=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-platform-detection=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-platform-jiangsuwenlv=4.1.3-jiangsu-0427.tar.gz
|
||||
cmlc=cmii=cmii-uav-platform-logistics=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-platform-media=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-platform-multiterminal=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-platform-mws=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-platform-oms=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-platform-open=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-platform-qinghaitourism=4.1.0-21377-0508.tar.gz
|
||||
cmlc=cmii=cmii-uav-platform-security=4.1.6.tar.gz
|
||||
cmlc=cmii=cmii-uav-platform-securityh5=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-platform-share=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-platform-splice=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-platform-threedsimulation=5.2.0-21392.tar.gz
|
||||
cmlc=cmii=cmii-uav-process=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-surveillance=5.4.0-24227.tar.gz
|
||||
cmlc=cmii=cmii-uav-threedsimulation=5.1.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-tower=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-user=5.4.0.tar.gz
|
||||
cmlc=cmii=cmii-uav-waypoint=5.4.0-26768.tar.gz
|
||||
)
|
||||
middle_image_list=(
|
||||
cmlc=cmii=nfs-subdir-external-provisioner=v4.0.2.tar.gz
|
||||
docker=busybox=latest.tar.gz
|
||||
cmlc=cmii=srs=v4.0-r3.tar.gz
|
||||
docker=emqx=emqx=4.2.12.tar.gz
|
||||
docker=bitnami=bitnami-shell=10-debian-10-r140.tar.gz
|
||||
docker=kubernetesui=dashboard=v2.0.1.tar.gz
|
||||
docker=bitnami=bitnami-shell=11-debian-11-r136.tar.gz
|
||||
docker=kubernetesui=metrics-scraper=v1.0.4.tar.gz
|
||||
docker=bitnami=minio=2022.5.4.tar.gz
|
||||
docker=mongo=5.0.tar.gz
|
||||
docker=bitnami=minio=2023.5.4.tar.gz
|
||||
docker=nacos=nacos-server=v2.1.2-slim.tar.gz
|
||||
docker=bitnami=mysql=8.0.35-debian-11-r1.tar.gz
|
||||
docker=nginx=1.21.3.tar.gz
|
||||
docker=bitnami=mysql=8.1.0-debian-11-r42.tar.gz
|
||||
docker=ossrs=srs=v4.0.136.tar.gz
|
||||
docker=bitnami=rabbitmq=3.11.26-debian-11-r2.tar.gz
|
||||
docker=ossrs=srs=v5.0.195.tar.gz
|
||||
docker=bitnami=rabbitmq=3.9.12-debian-10-r3.tar.gz
|
||||
docker=rabbitmq=3.9-management.tar.gz
|
||||
docker=bitnami=redis=6.2.14-debian-11-r1.tar.gz
|
||||
docker=redis=6.0.20-alpine.tar.gz
|
||||
docker=bitnami=redis=6.2.6-debian-10-r0.tar.gz
|
||||
docker=simonrupf=chronyd=0.4.3.tar.gz
|
||||
)
|
||||
rke_image_list=(
|
||||
docker=rancher=backup-restore-operator=v1.0.3.tar.gz
|
||||
docker=rancher=calico-cni=v3.17.2.tar.gz
|
||||
docker=rancher=calico-ctl=v3.17.2.tar.gz
|
||||
docker=rancher=calico-kube-controllers=v3.17.2.tar.gz
|
||||
docker=rancher=calico-node=v3.17.2.tar.gz
|
||||
docker=rancher=calico-pod2daemon-flexvol=v3.17.2.tar.gz
|
||||
docker=rancher=cis-operator=v1.0.3.tar.gz
|
||||
docker=rancher=cluster-proportional-autoscaler=1.7.1.tar.gz
|
||||
docker=rancher=cluster-proportional-autoscaler=1.8.1.tar.gz
|
||||
docker=rancher=configmap-reload=v0.3.0-rancher4.tar.gz
|
||||
docker=rancher=coredns-coredns=1.8.0.tar.gz
|
||||
docker=rancher=coreos-etcd=v3.4.14-rancher1.tar.gz
|
||||
docker=rancher=coreos-flannel=v0.13.0-rancher1.tar.gz
|
||||
docker=rancher=coreos-kube-state-metrics=v1.9.7.tar.gz
|
||||
docker=rancher=coreos-prometheus-config-reloader=v0.39.0.tar.gz
|
||||
docker=rancher=coreos-prometheus-operator=v0.39.0.tar.gz
|
||||
docker=rancher=externalip-webhook=v0.1.6.tar.gz
|
||||
docker=rancher=flannel-cni=v0.3.0-rancher6.tar.gz
|
||||
docker=rancher=fleet-agent=v0.3.4.tar.gz
|
||||
docker=rancher=fleet=v0.3.4.tar.gz
|
||||
docker=rancher=fluentd=v0.1.24.tar.gz
|
||||
docker=rancher=grafana-grafana=7.1.5.tar.gz
|
||||
docker=rancher=hyperkube=v1.20.4-rancher1.tar.gz
|
||||
docker=rancher=istio-kubectl=1.5.10.tar.gz
|
||||
docker=rancher=jimmidyson-configmap-reload=v0.3.0.tar.gz
|
||||
docker=rancher=k8s-dns-dnsmasq-nanny=1.15.2.tar.gz
|
||||
docker=rancher=k8s-dns-kube-dns=1.15.2.tar.gz
|
||||
docker=rancher=k8s-dns-node-cache=1.15.13.tar.gz
|
||||
docker=rancher=k8s-dns-sidecar=1.15.2.tar.gz
|
||||
docker=rancher=klipper-lb=v0.1.2.tar.gz
|
||||
docker=rancher=kube-api-auth=v0.1.4.tar.gz
|
||||
docker=rancher=kubernetes-external-dns=v0.7.3.tar.gz
|
||||
docker=rancher=library-busybox=1.31.1.tar.gz
|
||||
docker=rancher=library-busybox=1.32.1.tar.gz
|
||||
docker=rancher=library-nginx=1.19.2-alpine.tar.gz
|
||||
docker=rancher=library-traefik=1.7.19.tar.gz
|
||||
docker=rancher=local-path-provisioner=v0.0.11.tar.gz
|
||||
docker=rancher=local-path-provisioner=v0.0.14.tar.gz
|
||||
docker=rancher=local-path-provisioner=v0.0.19.tar.gz
|
||||
docker=rancher=log-aggregator=v0.1.7.tar.gz
|
||||
docker=rancher=metrics-server=v0.4.1.tar.gz
|
||||
docker=rancher=nginx-ingress-controller-defaultbackend=1.5-rancher1.tar.gz
|
||||
docker=rancher=nginx-ingress-controller=nginx-0.43.0-rancher1.tar.gz
|
||||
docker=rancher=opa-gatekeeper=v3.1.0-beta.7.tar.gz
|
||||
docker=rancher=openzipkin-zipkin=2.14.2.tar.gz
|
||||
docker=rancher=pause=3.2.tar.gz
|
||||
docker=rancher=plugins-docker=18.09.tar.gz
|
||||
docker=rancher=prom-alertmanager=v0.21.0.tar.gz
|
||||
docker=rancher=prometheus-auth=v0.2.1.tar.gz
|
||||
docker=rancher=prom-node-exporter=v1.0.1.tar.gz
|
||||
docker=rancher=prom-prometheus=v2.18.2.tar.gz
|
||||
docker=rancher=rancher-agent=v2.5.7.tar.gz
|
||||
docker=rancher=rancher=v2.5.7.tar.gz
|
||||
docker=rancher=rancher-webhook=v0.1.0-beta9.tar.gz
|
||||
docker=rancher=rke-tools=v0.1.72.tar.gz
|
||||
docker=rancher=security-scan=v0.1.14.tar.gz
|
||||
docker=rancher=security-scan=v0.2.2.tar.gz
|
||||
docker=rancher=shell=v0.1.6.tar.gz
|
||||
docker=rancher=sonobuoy-sonobuoy=v0.16.3.tar.gz
|
||||
docker=rancher=system-upgrade-controller=v0.6.2.tar.gz
|
||||
)
|
||||
|
||||
oss_prefix=https://oss.demo.uavcmlc.com/cmlc-installation/shls
|
||||
oss_middle_prefix=https://oss.demo.uavcmlc.com/cmlc-installation/mid-image-amd64
|
||||
oss_rke_prefix=https://oss.demo.uavcmlc.com/cmlc-installation/rke-image-amd64
|
||||
target_harbor_host=103.0.180.201:8033
|
||||
rke_image_local_prefix=/wdd/image/rke/
|
||||
mid_image_local_prefix=/wdd/image/middle/
|
||||
|
||||
|
||||
cmii_image_download_from_oss() {
|
||||
for image in "${cmii_image_list[@]}"; do
|
||||
echo "start to download => $image"
|
||||
curl -x socks5h://103.0.180.82:9997 $oss_prefix/$image -o $image
|
||||
echo ""
|
||||
done
|
||||
}
|
||||
|
||||
middle_image_download_from_oss() {
|
||||
mkdir -p ${mid_image_local_prefix}
|
||||
for image in "${middle_image_list[@]}"; do
|
||||
echo "start to download => $image"
|
||||
curl -x socks5h://103.0.180.82:9997 $oss_middle_prefix/$image -o ${mid_image_local_prefix}$image
|
||||
echo ""
|
||||
done
|
||||
}
|
||||
|
||||
rke_image_download_from_oss() {
|
||||
mkdir -p ${rke_image_local_prefix}
|
||||
for image in "${rke_image_list[@]}"; do
|
||||
echo "start to download => $image"
|
||||
curl -x socks5h://103.0.180.82:9997 $oss_rke_prefix/$image -o $rke_image_local_prefix$image
|
||||
echo ""
|
||||
done
|
||||
}
|
||||
|
||||
image_load_to_harbor() {
|
||||
# local cmii_harbor_prefix="harbor.cdcyy.com.cn/cmii/"
|
||||
# for image in "${cmii_image_list[@]}"; do
|
||||
# echo "start to load => $image"
|
||||
# docker load <"$image"
|
||||
# echo ""
|
||||
# if [[ $image == cmlc* ]]; then
|
||||
# local app_name=$(echo $image | cut -d "=" -f3)
|
||||
# local ccc=$(echo $image | cut -d "=" -f4)
|
||||
# local app_tag="${ccc%.tar.gz}"
|
||||
# echo "from $cmii_harbor_prefix$app_name:$app_tag ==> $target_harbor_host/cmii/$app_name:$app_tag"
|
||||
# docker tag "$cmii_harbor_prefix$app_name:$app_tag" "$target_harbor_host/cmii/$app_name:$app_tag"
|
||||
#
|
||||
# echo "start to push => $target_harbor_host/cmii/$app_name:$app_tag"
|
||||
# docker login -u admin -p V2ryStr@ngPss $target_harbor_host
|
||||
# docker push "$target_harbor_host/cmii/$app_name:$app_tag"
|
||||
#
|
||||
# fi
|
||||
#
|
||||
# echo ""
|
||||
# done
|
||||
|
||||
# for image in "${rke_image_list[@]}"; do
|
||||
# echo "start to load => $image"
|
||||
# docker load < "${rke_image_local_prefix}/$image"
|
||||
# echo ""
|
||||
# local app_name_prefix=$(echo $image | cut -d "=" -f2)
|
||||
# local app_name=$(echo $image | cut -d "=" -f3)
|
||||
# local ccc=$(echo $image | cut -d "=" -f4)
|
||||
# local app_tag="${ccc%.tar.gz}"
|
||||
# echo "from $app_name_prefix/$app_name:$app_tag ==> $target_harbor_host/rancher/$app_name:$app_tag"
|
||||
# docker tag "$app_name_prefix/$app_name:$app_tag" "$target_harbor_host/rancher/$app_name:$app_tag"
|
||||
# echo "start to push => $target_harbor_host/rancher/$app_name:$app_tag"
|
||||
# docker login -u admin -p V2ryStr@ngPss $target_harbor_host
|
||||
# docker push "$target_harbor_host/rancher/$app_name:$app_tag"
|
||||
# echo ""
|
||||
# done
|
||||
|
||||
for image in "${middle_image_list[@]}"; do
|
||||
echo "start to load => $image"
|
||||
docker load <"${mid_image_local_prefix}$image"
|
||||
echo ""
|
||||
if [[ $image == cmlc* ]]; then
|
||||
local app_name=$(echo $image | cut -d "=" -f3)
|
||||
local ccc=$(echo $image | cut -d "=" -f4)
|
||||
local app_tag="${ccc%.tar.gz}"
|
||||
echo "from $cmii_harbor_prefix$app_name:$app_tag ==> $target_harbor_host/cmii/$app_name:$app_tag"
|
||||
docker tag "$cmii_harbor_prefix$app_name:$app_tag" "$target_harbor_host/cmii/$app_name:$app_tag"
|
||||
echo "start to push => $target_harbor_host/cmii/$app_name:$app_tag"
|
||||
docker login -u admin -p V2ryStr@ngPss $target_harbor_host
|
||||
docker push "$target_harbor_host/cmii/$app_name:$app_tag"
|
||||
elif [[ $image == docker* ]]; then
|
||||
count=$(grep -o "=" <<< "$image" | wc -l)
|
||||
local app_name
|
||||
local ccc
|
||||
if [[ $count -eq "2" ]]; then
|
||||
app_name=$(echo $image | cut -d "=" -f2)
|
||||
ccc=$(echo $image | cut -d "=" -f3)
|
||||
elif [[ $count -eq "3" ]]; then
|
||||
app_name=$(echo $image | cut -d "=" -f3)
|
||||
ccc=$(echo $image | cut -d "=" -f4)
|
||||
fi
|
||||
|
||||
local app_tag="${ccc%.tar.gz}"
|
||||
echo "from docker.io/$app_name:$app_tag ==> $target_harbor_host/cmii/$app_name:$app_tag"
|
||||
docker tag "$app_name:$app_tag" "$target_harbor_host/cmii/$app_name:$app_tag"
|
||||
echo "start to push => $target_harbor_host/cmii/$app_name:$app_tag"
|
||||
docker login -u admin -p V2ryStr@ngPss $target_harbor_host
|
||||
docker push "$target_harbor_host/cmii/$app_name:$app_tag"
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
create_harbor_project() {
|
||||
curl -X POST -u "admin:V2ryStr@ngPss" -H "authorization: Basic YWRtaW46VjJyeVN0ckBuZ1Bzcw==" -H "Content-Type: application/json" -d '{"project_name":"cmii","registry_id":null,"metadata":{"public":"true"},"storage_limit":-1}' http://$target_harbor_host/api/v2.0/projects
|
||||
|
||||
curl -X POST -u "admin:V2ryStr@ngPss" -H "authorization: Basic YWRtaW46VjJyeVN0ckBuZ1Bzcw==" -H "Content-Type: application/json" -d '{"project_name":"rancher","registry_id":null,"metadata":{"public":"true"},"storage_limit":-1}' http://$target_harbor_host/api/v2.0/projects
|
||||
}
|
||||
|
||||
|
||||
image_load_to_harbor
|
||||
4399
19-上海雷视/k8s-back.yaml
Normal file
4399
19-上海雷视/k8s-back.yaml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
19-上海雷视/port_win64.exe
Normal file
BIN
19-上海雷视/port_win64.exe
Normal file
Binary file not shown.
BIN
19-上海雷视/socks5_win64.exe
Normal file
BIN
19-上海雷视/socks5_win64.exe
Normal file
Binary file not shown.
14
19-上海雷视/下载文件.txt
Normal file
14
19-上海雷视/下载文件.txt
Normal file
@@ -0,0 +1,14 @@
|
||||
|
||||
|
||||
curl -x socks5h://103.0.180.82:9997 https://oss.demo.uavcmlc.com/cmlc-installation/v4.1.6/shanghai_map/elec/electronic-1-10.zip -o electronic-1-10.zip
|
||||
curl -x socks5h://103.0.180.82:9997 https://oss.demo.uavcmlc.com/cmlc-installation/v4.1.6/shanghai_map/elec/electronic-11-16.zip -o electronic-11-16.zip
|
||||
curl -x socks5h://103.0.180.82:9997 https://oss.demo.uavcmlc.com/cmlc-installation/v4.1.6/shanghai_map/elec/electronic-17-18.zip -o electronic-17-18.zip
|
||||
|
||||
curl -x socks5h://103.0.180.82:9997 https://oss.demo.uavcmlc.com/cmlc-installation/v4.1.6/shanghai_map/state/satelete-1-10.zip -o satelete-1-10.zip
|
||||
curl -x socks5h://103.0.180.82:9997 https://oss.demo.uavcmlc.com/cmlc-installation/v4.1.6/shanghai_map/st……te/satelete-11-16.zip -o satelete-11-16.zip
|
||||
curl -x socks5h://103.0.180.82:9997 https://oss.demo.uavcmlc.com/cmlc-installation/v4.1.6/shanghai_map/state/satelete-17-18.zip -o satelete-17-18.zip
|
||||
|
||||
|
||||
curl -x socks5h://103.0.180.82:9997 https://oss.demo.uavcmlc.com/cmlc-installation/shls/middleware-images.tar.gz -o middleware-images.tar.gz
|
||||
|
||||
curl http://103.0.180.82:9000/octopus/mysql-8.0.27-linux-glibc2.17-x86_64-minimal.zip
|
||||
353
19-上海雷视/传统下载镜像.sh
Normal file
353
19-上海雷视/传统下载镜像.sh
Normal file
@@ -0,0 +1,353 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 约定内容
|
||||
|
||||
NeedUploadFolder=99
|
||||
IsUpload=99
|
||||
UploadImageName=""
|
||||
ImageListName=""
|
||||
ImageTarName=""
|
||||
ImageName=""
|
||||
ImageTag=""
|
||||
InnerIPv4CIDR=""
|
||||
InnerIPv6CIDR=""
|
||||
InnerIPv4=""
|
||||
InnerIPv6=""
|
||||
CmiiImagePrefix="harbor.cdcyy.com.cn/cmii/"
|
||||
OSS_URL="https://oss.demo.uavcmlc.com:18000/cmlc-installation/tmp/"
|
||||
Custom_Client_Harbor="REPLACE:8033"
|
||||
|
||||
#######################################
|
||||
# description
|
||||
# Globals:
|
||||
# ImageName
|
||||
# ImageTag
|
||||
# ImageTarName
|
||||
# RANDOM
|
||||
# UploadImageName
|
||||
# Arguments:
|
||||
# None
|
||||
#######################################
|
||||
get_image_tar_name() {
|
||||
|
||||
# harbor.cdcyy.com.cn/cmii/cmii-uav-oauth:4.1.6
|
||||
ImageName=$(echo $UploadImageName | cut -d ":" -f1 | cut -d"/" -f3)
|
||||
ImageTag=$(echo $UploadImageName | cut -d ":" -f2)
|
||||
local currentDate=$(date +'%Y-%m-%d')
|
||||
local random_number=$((RANDOM % 900 + 100))
|
||||
|
||||
ImageTarName="$ImageName=$ImageTag=$currentDate=$random_number.tar.gz"
|
||||
}
|
||||
|
||||
#######################################
|
||||
# description
|
||||
# Globals:
|
||||
# ImageName
|
||||
# ImageTag
|
||||
# ImageTarName
|
||||
# UploadImageName
|
||||
# Arguments:
|
||||
# None
|
||||
#######################################
|
||||
get_image_name_from_tar() {
|
||||
|
||||
# cmii-uav-oauth_4.1.6-0918_20230918_123.tar.gz
|
||||
|
||||
ImageName=$(echo $ImageTarName | cut -d "=" -f1)
|
||||
ImageTag=$(echo $ImageTarName | cut -d"=" -f2)
|
||||
|
||||
UploadImageName="$ImageName:$ImageTag"
|
||||
}
|
||||
|
||||
# 获取服务器的公网IP地址
|
||||
get_Internal_IP_CIDR() {
|
||||
|
||||
local interface_prefix=("[[:space:]]eth[0-9]{1,2}" "[[:space:]]ens[0-9]{1,3}" "[[:space:]]eno[0-9]{1,3}" "[[:space:]]enp[0-9]{1,2}")
|
||||
local real_interface="eth90"
|
||||
|
||||
for interface in "${interface_prefix[@]}"; do
|
||||
echo $(ip link show) | grep -oE ${interface} | head -1
|
||||
if [[ $? -eq 0 ]]; then
|
||||
real_interface=$(echo $(ip link show) | grep -oE ${interface} | head -1 | cut -d" " -f2)
|
||||
echo "当前主机的真实内网网卡为 => [$real_interface]"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# 提取IPv4地址(CIDR格式)
|
||||
local ipv4_regex="inet[[:space:]](25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/[0-9]{1,2}"
|
||||
|
||||
# 提取IPv6地址(CIDR格式)
|
||||
local ipv6_regex="inet6[[:space:]]([0-9a-fA-F]{0,4}(:[0-9a-fA-F]{0,4}){1,7})\/[0-9]{1,3}"
|
||||
|
||||
# 查找IPv4地址
|
||||
local inner_ipv4=$(echo $(ip addr show $real_interface) | grep -oE $ipv4_regex | cut -d" " -f2)
|
||||
InnerIPv4CIDR=$inner_ipv4
|
||||
echo "Interface: $real_interface, IPv4 Address: $inner_ipv4"
|
||||
|
||||
# 查找IPv6地址
|
||||
local inner_ipv6=$(echo $(ip addr show $real_interface) | grep -oE $ipv6_regex | cut -d" " -f2)
|
||||
InnerIPv6CIDR=$inner_ipv6
|
||||
echo "Interface: $real_interface, IPv4 Address: $inner_ipv6"
|
||||
|
||||
}
|
||||
|
||||
#######################################
|
||||
# description
|
||||
# Globals:
|
||||
# InnerIPv4
|
||||
# InnerIPv4CIDR
|
||||
# InnerIPv6
|
||||
# InnerIPv6CIDR
|
||||
# Arguments:
|
||||
# None
|
||||
#######################################
|
||||
get_Internal_IP() {
|
||||
|
||||
get_Internal_IP_CIDR
|
||||
|
||||
InnerIPv4=103.0.180.201
|
||||
InnerIPv6=$(echo $InnerIPv6CIDR | cut -d "/" -f1)
|
||||
|
||||
echo "服务器的内网IPv4地址为 $InnerIPv4"
|
||||
echo "服务器的内网IPv6地址为 $InnerIPv6"
|
||||
|
||||
}
|
||||
|
||||
#######################################
|
||||
# description
|
||||
# Globals:
|
||||
# _m_opts
|
||||
# Arguments:
|
||||
# None
|
||||
#######################################
|
||||
_math() {
|
||||
_m_opts="$@"
|
||||
printf "%s" "$((_m_opts))"
|
||||
}
|
||||
|
||||
# 前文内容
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
-fu | --fileupload)
|
||||
NeedUploadFolder=1
|
||||
ImageListName=${2}
|
||||
shift # past argument
|
||||
;;
|
||||
-fd | --filedownload)
|
||||
NeedUploadFolder=2
|
||||
ImageListName=${2}
|
||||
shift # past argument
|
||||
;;
|
||||
-u | --upload)
|
||||
IsUpload=1
|
||||
UploadImageName="${2}"
|
||||
shift # past argument
|
||||
;;
|
||||
-d | --download)
|
||||
IsUpload=2
|
||||
ImageTarName="${2}"
|
||||
shift # past argument
|
||||
;;
|
||||
-h | --harbor)
|
||||
Custom_Client_Harbor="${2}"
|
||||
shift # past argument
|
||||
;;
|
||||
*)
|
||||
# unknown option
|
||||
;;
|
||||
esac
|
||||
shift # past argument or value
|
||||
done
|
||||
|
||||
#######################################
|
||||
# description
|
||||
# Globals:
|
||||
# ImageTarName
|
||||
# UploadImageName
|
||||
# Arguments:
|
||||
# None
|
||||
#######################################
|
||||
Download_Compress_OSS_Image() {
|
||||
|
||||
# upload
|
||||
echo "【上传】 - 需要处理的镜像名称为 => $UploadImageName"
|
||||
echo ""
|
||||
echo "【上传】 - 开始下载镜像!"
|
||||
echo ""
|
||||
if docker pull "${UploadImageName}" >/dev/null 2>&1; then
|
||||
echo "下载-镜像下载成功! => $UploadImageName"
|
||||
else
|
||||
if docker inspect "${UploadImageName}" >/dev/null 2>&1; then
|
||||
echo "下载-镜像已经存在 => $UploadImageName"
|
||||
else
|
||||
echo ""
|
||||
echo "下载-镜像下载 失败! => $UploadImageName"
|
||||
echo "下载-镜像下载 失败! => $UploadImageName"
|
||||
echo ""
|
||||
return 233
|
||||
fi
|
||||
fi
|
||||
echo ""
|
||||
|
||||
get_image_tar_name
|
||||
echo "【上传】 - 将要把镜像压缩为 => $ImageTarName"
|
||||
docker save $UploadImageName | gzip --stdout >${ImageTarName}
|
||||
echo "【上传】 - 压缩成功 ! $(ls | grep ${ImageTarName})"
|
||||
echo""
|
||||
|
||||
echo "【上传】 - 开始上传至OSS中!"
|
||||
mc cp ./${ImageTarName} demo/cmlc-installation/tmp/
|
||||
echo "【上传】 - 上传OSS成功 => $(mc ls demo/cmlc-installation/tmp/ | grep ${ImageTarName})"
|
||||
echo""
|
||||
|
||||
}
|
||||
#######################################
|
||||
# description
|
||||
# Globals:
|
||||
# CmiiImagePrefix
|
||||
# ImageTarName
|
||||
# InnerIPv4
|
||||
# OSS_URL
|
||||
# UploadImageName
|
||||
# custom_prefix
|
||||
# Arguments:
|
||||
# None
|
||||
# Returns:
|
||||
# <unknown> ...
|
||||
#######################################
|
||||
UnCompress_Upload_Harbor() {
|
||||
|
||||
echo "【下载】 - 需要处理的压缩包名称为 => $ImageTarName"
|
||||
|
||||
echo "【下载】 - 开始下载 ↓"
|
||||
curl -x socks5h://103.0.180.82:9997 "$OSS_URL$ImageTarName"
|
||||
if [[ $? -ne 0 ]]; then
|
||||
echo "【下载】- 下载镜像失败!退出!"
|
||||
return
|
||||
fi
|
||||
echo ""
|
||||
|
||||
echo "【下载】 - 开始解压压缩包 "
|
||||
docker load <"${ImageTarName}"
|
||||
echo ""
|
||||
|
||||
get_Internal_IP
|
||||
echo "【下载】 - 开始上传镜像到本地的镜像仓库中 => $InnerIPv4:8033 "
|
||||
custom_prefix="$InnerIPv4:8033/cmii/"
|
||||
echo ""
|
||||
|
||||
get_image_name_from_tar
|
||||
echo "【下载】 - 解析得到的 私有镜像地址为 => $custom_prefix$UploadImageName"
|
||||
docker tag "$CmiiImagePrefix${UploadImageName}" "$custom_prefix$UploadImageName"
|
||||
|
||||
echo "【下载】 - 开始上传镜像到私有仓库 ↓"
|
||||
docker login -u admin -p V2ryStr@ngPss "$InnerIPv4:8033"
|
||||
echo ""
|
||||
echo "【下载】 - 开始推送到私有仓库! "
|
||||
docker push "$custom_prefix$UploadImageName"
|
||||
echo ""
|
||||
echo ""
|
||||
|
||||
}
|
||||
|
||||
if [[ $NeedUploadFolder == 1 ]]; then
|
||||
# 上传的是一个目录
|
||||
echo "【上传】 - 上传的文件目录为 => ${ImageListName}"
|
||||
|
||||
currentDate=$(date +'%Y-%m-%d')
|
||||
random_number=$((RANDOM % 900 + 100))
|
||||
tar_image_txt_file="$currentDate-$random_number.txt"
|
||||
echo "【上传】 - 复制文件目录为临时文件 => $tar_image_txt_file"
|
||||
touch $tar_image_txt_file
|
||||
echo ""
|
||||
echo ""
|
||||
|
||||
while IFS= read -r i; do
|
||||
[ -z "${i}" ] && continue
|
||||
|
||||
UploadImageName=${i}
|
||||
Download_Compress_OSS_Image
|
||||
|
||||
# 写入压缩文件名称
|
||||
echo "$ImageTarName" >>"$tar_image_txt_file"
|
||||
|
||||
echo "-------------------------------------------------"
|
||||
done <"${ImageListName}"
|
||||
echo ""
|
||||
|
||||
echo "【上传】 - 上传压缩文件名称列表至OSS中 !"
|
||||
mc cp ./"$tar_image_txt_file" demo/cmlc-installation/tmp/
|
||||
echo "【上传】 - 上传OSS成功 => $(mc ls demo/cmlc-installation/tmp/ | grep "${tar_image_txt_file}")"
|
||||
echo ""
|
||||
|
||||
echo "【上传】 - 请在目标Master主机执行如下命令 ↓↓↓↓↓↓"
|
||||
echo ""
|
||||
echo ""
|
||||
echo "source <(curl -sL https://b2.107421.xyz/image-sync.sh) -fd "$OSS_URL$tar_image_txt_file""
|
||||
echo ""
|
||||
echo ""
|
||||
|
||||
elif [[ $NeedUploadFolder == 2 ]]; then
|
||||
echo "【下载】- 需要下载的压缩包文件为 => $ImageListName"
|
||||
curl -x socks5h://103.0.180.82:9997 ${ImageListName}
|
||||
|
||||
tar_image_txt_file=$(echo ${ImageListName} | cut -d"/" -f6)
|
||||
image_count=0
|
||||
|
||||
while IFS= read -r i; do
|
||||
[ -z "${i}" ] && continue
|
||||
|
||||
ImageTarName=${i}
|
||||
UnCompress_Upload_Harbor
|
||||
image_count="$(_math "$image_count" + 1)"
|
||||
|
||||
echo "-------------------------------------------------"
|
||||
done <"${tar_image_txt_file}"
|
||||
echo ""
|
||||
|
||||
echo "【下载】 - 请等待流程结束 ↓"
|
||||
_sleep_c="500"
|
||||
for (( i=1; i<$image_count; i++ )) ; do
|
||||
_sleep_c="$(_math "$_sleep_c" + 500)"
|
||||
done
|
||||
echo "【下载】 - 共有 【 $image_count 】个镜像, 等待上传结束 => $_sleep_c 秒"
|
||||
while [ "$_sleep_c" -ge "0" ]; do
|
||||
printf "\r \r"
|
||||
printf -- "%b" "$_sleep_c"
|
||||
_sleep_c="$(_math "$_sleep_c" - 1)"
|
||||
sleep 1
|
||||
done
|
||||
printf "\r"
|
||||
|
||||
fi
|
||||
|
||||
if [[ $IsUpload == 1 ]]; then
|
||||
Download_Compress_OSS_Image
|
||||
echo "【上传】 - 请在目标Master主机执行如下命令 ↓↓↓↓↓↓"
|
||||
echo ""
|
||||
echo ""
|
||||
echo "source <(curl -sL https://b2.107421.xyz/image-sync.sh) -d $ImageTarName"
|
||||
echo ""
|
||||
echo ""
|
||||
Client_Harbor_Address="$Custom_Client_Harbor/cmii/$ImageName:$ImageTag"
|
||||
echo "【上传】 - 手动命令执行如下, 目标镜像全程地址为 => $Client_Harbor_Address"
|
||||
echo ""
|
||||
echo "wget $OSS_URL$ImageTarName && docker load < $ImageTarName && docker tag ${UploadImageName} $Client_Harbor_Address && docker push $Client_Harbor_Address"
|
||||
echo ""
|
||||
echo ""
|
||||
elif [[ $IsUpload == 2 ]];then
|
||||
# download
|
||||
UnCompress_Upload_Harbor
|
||||
|
||||
echo "【下载】 - 请等待流程结束 ↓"
|
||||
_sleep_c="500"
|
||||
while [ "$_sleep_c" -ge "0" ]; do
|
||||
printf "\r \r"
|
||||
printf -- "%b" "$_sleep_c"
|
||||
_sleep_c="$(_math "$_sleep_c" - 1)"
|
||||
sleep 1
|
||||
done
|
||||
printf "\r"
|
||||
fi
|
||||
Reference in New Issue
Block a user