163 lines
5.3 KiB
Bash
163 lines
5.3 KiB
Bash
#!/bin/bash
|
|
|
|
# set -o errexit
|
|
# set -o nounset
|
|
# set -o pipefail
|
|
|
|
octopus_agent_url=https://happybirthday.107421.xyz/octopus-agent
|
|
agent_config_url=https://happybirthday.107421.xyz/agent-config
|
|
agent_version_url=https://happybirthday.107421.xyz/agent-version
|
|
agent_offline_proxy_conf=https://oss-1.107421.xyz/octopus-offline-nginx.conf
|
|
default_octopus_agent_local_path=/data/github-action/octopus-agent/
|
|
default_octopus_agent_config_local_path=/data/github-action/agent-config/
|
|
default_octopus_agent_version_local_path=/data/github-action/agent-version
|
|
agent_latest_version=2011-11-11-11
|
|
|
|
sync_octopus_agent() {
|
|
|
|
# 如果本地已经是最新版本 那么不要更新
|
|
if ls ${default_octopus_agent_local_path} | grep -q "${agent_latest_version}";then
|
|
echo "agent already latest version => ${agent_latest_version}"
|
|
return 0
|
|
fi
|
|
|
|
local octopus_agent_html="octopus_agent_config.html"
|
|
|
|
rm -rf ${octopus_agent_html}
|
|
wget "$octopus_agent_url/" -qO ${octopus_agent_html}
|
|
|
|
if [[ ! -s $octopus_agent_html ]]; then
|
|
echo "[sync_octopus_agent] - download agent file error ! return false !"
|
|
return 233
|
|
fi
|
|
|
|
echo "清除旧的Agnet内容"
|
|
rm -rf ${default_octopus_agent_local_path}
|
|
mkdir -p ${default_octopus_agent_local_path}
|
|
echo ""
|
|
|
|
echo "开始同步最新版本的Octopus Agent !"
|
|
local octopus_agent_file_list=""
|
|
# shellcheck disable=SC2034
|
|
octopus_agent_file_list=$(cat ${octopus_agent_html} | grep -v h1 | grep "a href=" | awk '{print$2}' | cut -d">" -f2 | cut -d"<" -f1 | tr "\n" " ")
|
|
local octopus_agent_config_list
|
|
IFS=" " read -ra octopus_agent_file_list <<<"$octopus_agent_file_list"
|
|
echo ""
|
|
local octopus_agent_file
|
|
for octopus_agent_file in "${octopus_agent_file_list[@]}"; do
|
|
echo "[sync_octopus_agent] => start to download => ${octopus_agent_url}/${octopus_agent_file}"
|
|
wget "${octopus_agent_url}/${octopus_agent_file}" -qO "${default_octopus_agent_local_path}${octopus_agent_file}"
|
|
echo ""
|
|
|
|
if [[ ! -s "${default_octopus_agent_local_path}${octopus_agent_file}" ]]; then
|
|
echo ""
|
|
echo "[sync_octopus_agent] - ERROR download file ${octopus_agent_url}/${octopus_agent_file} !"
|
|
echo ""
|
|
return 233
|
|
fi
|
|
|
|
done
|
|
|
|
echo "[sync_octopus_agent] - check for octopus agent download .."
|
|
echo ""
|
|
ls ${default_octopus_agent_local_path}
|
|
echo ""
|
|
echo ""
|
|
|
|
}
|
|
|
|
sync_octopus_agent_config() {
|
|
|
|
local octopus_agent_config_html="octopus_agent_config.html"
|
|
|
|
rm -rf ${octopus_agent_config_html}
|
|
wget "$agent_config_url/" -qO ${octopus_agent_config_html}
|
|
|
|
if [[ ! -s $octopus_agent_config_html ]]; then
|
|
echo "[sync_octopus_agent_config] - download agent config file error ! return false !"
|
|
return 233
|
|
fi
|
|
|
|
echo "清除旧的Agnet Config内容"
|
|
rm -rf $default_octopus_agent_config_local_path
|
|
mkdir -p ${default_octopus_agent_config_local_path}
|
|
echo ""
|
|
echo "开始同步最新版本的Octopus Agent Config !"
|
|
|
|
local octopus_agent_config_file_list=""
|
|
# shellcheck disable=SC2034
|
|
octopus_agent_config_file_list=$(cat ${octopus_agent_config_html} | grep -v h1 | grep "a href=" | awk '{print$2}' | cut -d">" -f2 | cut -d"<" -f1 | tr "\n" " ")
|
|
local octopus_agent_config_list
|
|
IFS=" " read -ra octopus_agent_config_list <<<"$octopus_agent_config_file_list"
|
|
echo ""
|
|
local octopus_agent_config_file
|
|
for octopus_agent_config_file in "${octopus_agent_config_list[@]}"; do
|
|
echo "[sync_octopus_agent_config] => start to download => ${agent_config_url}/${octopus_agent_config_file}"
|
|
wget "${agent_config_url}/${octopus_agent_config_file}" -qO "${default_octopus_agent_config_local_path}${octopus_agent_config_file}"
|
|
echo ""
|
|
|
|
if [[ ! -s "${default_octopus_agent_config_local_path}${octopus_agent_config_file}" ]]; then
|
|
echo ""
|
|
echo "[sync_octopus_agent_config] - ERROR download file ${agent_config_url}/${octopus_agent_config_file} !"
|
|
echo ""
|
|
return 233
|
|
fi
|
|
|
|
done
|
|
|
|
echo "[sync_octopus_agent_config] - check for octopus agent config download .."
|
|
echo ""
|
|
ls ${default_octopus_agent_config_local_path}
|
|
echo ""
|
|
echo ""
|
|
|
|
}
|
|
|
|
sync_octopus_agent_version() {
|
|
# scp -P 22333 root@146.56.159.175:/data/
|
|
rm -rf ${default_octopus_agent_version_local_path}
|
|
agent_latest_version=$(curl -s -timeout=5 "${agent_version_url}")
|
|
echo "${agent_latest_version}" > ${default_octopus_agent_version_local_path}
|
|
|
|
echo "[sync_octopus_agent_version] - agent latest version is => $(cat $default_octopus_agent_version_local_path)"
|
|
echo ""
|
|
}
|
|
|
|
sync_octopus_offline_nginx_proxy_conf() {
|
|
|
|
# 检查服务是否存在
|
|
if ! systemctl list-units --type service --all | grep -q "nginx.service"; then
|
|
echo "nginx 未安装! "
|
|
return 233
|
|
fi
|
|
|
|
local local_octopus_nginx_proxy_conf_path=/etc/nginx/conf.d/octopus-offline-nginx.conf
|
|
rm -rf ${local_octopus_nginx_proxy_conf_path}
|
|
|
|
wget ${agent_offline_proxy_conf} -qO ${local_octopus_nginx_proxy_conf_path}
|
|
|
|
if [[ ! -f "${local_octopus_nginx_proxy_conf_path}" ]]; then
|
|
echo ""
|
|
echo "[sync_octopus_offline_nginx_proxy_conf] - ERROR download file ${agent_offline_proxy_conf} !"
|
|
echo ""
|
|
return 233
|
|
fi
|
|
|
|
echo "[sync_octopus_offline_nginx_proxy_conf] - nginx offline sync has been synchronized !"
|
|
|
|
systemctl restart nginx
|
|
}
|
|
|
|
main() {
|
|
|
|
sync_octopus_agent_version
|
|
|
|
sync_octopus_agent
|
|
|
|
sync_octopus_agent_config
|
|
|
|
sync_octopus_offline_nginx_proxy_conf
|
|
}
|
|
|
|
main
|