From 1e20429b3ac49bb63dde31ca40bbb86b2de0a0da Mon Sep 17 00:00:00 2001 From: zeaslity Date: Fri, 30 Jun 2023 15:18:15 +0800 Subject: [PATCH] =?UTF-8?q?[=20=E9=A1=B9=E7=9B=AE=20]=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?CI=20CD=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agent-go/main.go | 2 + .../rpc/agent/OctopusAgentServiceImpl.java | 9 --- .../java/io/wdd/source/shell/agent-bootup.sh | 38 +++++++-- .../io/wdd/source/shell/lib/wdd-lib-env.sh | 54 ++++++------- .../io/wdd/source/shell/lib/wdd-lib-file.sh | 2 +- .../io/wdd/source/shell/lib/wdd-lib-os.sh | 80 ------------------- 6 files changed, 59 insertions(+), 126 deletions(-) delete mode 100644 source/src/main/java/io/wdd/source/shell/lib/wdd-lib-os.sh diff --git a/agent-go/main.go b/agent-go/main.go index 47f0ad9..41d4795 100644 --- a/agent-go/main.go +++ b/agent-go/main.go @@ -14,7 +14,9 @@ func main() { // 解析命令行参数 var version string + var agentInfoConf string flag.StringVar(&version, "version", "", "config file version") + flag.StringVar(&agentInfoConf, "agentInfoConf", "", "agent server info conf file") flag.Parse() // 读取对应版本的配置文件 filename := fmt.Sprintf("octopus-agent-%s.yaml", version) diff --git a/server/src/main/java/io/wdd/rpc/agent/OctopusAgentServiceImpl.java b/server/src/main/java/io/wdd/rpc/agent/OctopusAgentServiceImpl.java index 802bc8c..730b595 100644 --- a/server/src/main/java/io/wdd/rpc/agent/OctopusAgentServiceImpl.java +++ b/server/src/main/java/io/wdd/rpc/agent/OctopusAgentServiceImpl.java @@ -78,18 +78,9 @@ public class OctopusAgentServiceImpl implements OctopusAgentService { CountDownLatch countDownLatch = agentReplayContend.getCountDownLatch(); - // 调用后台接收处理所有的Replay信息 asyncWaitOctopusMessageResultService.waitFor(agentReplayContend); - //此处存在重大bug,会导致CPU占用飙升 - /*CompletableFuture getAllAgentVersionInfoFuture = waitCollectAllAgentVersionInfo( - result, - currentTime, - countDownLatch - );*/ - - boolean isAllHealthyAgentReport = false; try { // 超时等待5秒钟, 或者所有的Agent均已经完成上报 diff --git a/source/src/main/java/io/wdd/source/shell/agent-bootup.sh b/source/src/main/java/io/wdd/source/shell/agent-bootup.sh index 1ea54d9..c95b650 100644 --- a/source/src/main/java/io/wdd/source/shell/agent-bootup.sh +++ b/source/src/main/java/io/wdd/source/shell/agent-bootup.sh @@ -7,7 +7,6 @@ JAVA_OPTS="-Xms128m -Xmx512m -Ddebug=false -Dfile.encoding=utf-8 --spring.profi DependLibFiles=( wdd-lib-file.sh wdd-lib-log.sh - wdd-lib-os.sh wdd-lib-env.sh wdd-lib-sys.sh ) @@ -254,9 +253,6 @@ DownloadAllFile() { colorEcho $BLUE "start to download octopus agent !" # check for latest version # download the lasted jar - cd $OctopusAgentPath - colorEcho $BLUE "start to load wdd-lib-os.sh" - . ./lib/wdd-lib-os.sh CheckAndDownloadLatestVersion FunctionSuccess @@ -264,6 +260,34 @@ DownloadAllFile() { } +CheckAndDownloadLatestVersion() { + + log "checking for the latest version" + local latestVersion=$(curl $OctopusAgentUrl | grep -v h1 | grep "a href=" | awk '{print$2}' | cut -d">" -f2 | cut -d"<" -f1) + + log "" + log "octopus agent latest version is => [ $latestVersion ]" + log "" + rm -rf /octopus-agent/octopus-agent* + cd /octopus-agent + + log "start to download the latest version !" + + # Agent二进制文件的命名规则为 octopus-agent_linux_amd64_ + local latestAgentVersion="octopus-agent_linux_${LinuxRelease}_${latestVersion}" + + wget -q "$OctopusAgentUrl$latestAgentVersion" + cp "$latestAgentVersion" octopus-agent + chmod +x octopus-agent + log "" + log "" + log "---------------- ls the /octopus-agent ----------------------" + ls /octopus-agent/ | grep octopus-agent + log "----------------------------------------------" + +} + + ####################################### # description # Globals: @@ -355,8 +379,7 @@ SyslogIdentifier=octopus-agent User=root Type=simple WorkingDirectory=/octopus-agent -EnvironmentFile=/etc/environment.d/octopus-agent.conf -ExecStart=java -jar /octopus-agent/agent.jar ${JAVA_OPTS} +ExecStart=/octpus-agent/octopus-agent -agentInfoConf=/octpus-agent/octopus-agent.conf ExecStop=/bin/kill -15 \$MAINPID [Install] @@ -609,6 +632,7 @@ CleanOldOctopusAgent() { agentPid=$(ps -ef | grep -v "color="| grep -c "octopus-agent") if [[ $agentPid -gt 0 ]]; then + colorEcho $BLUE "old agent existed ! start to kill" colorEcho $BLUE "old agent existed ! start to kill" systemctl stop octopus-agent sleep 2 @@ -636,8 +660,6 @@ main() { CommonToolInstall - InstallJDKPackage 11 - # 不能使用下面的内容,会导致命令行执行的时候,本更新进程也会被杀死 # CleanOldOctopusAgent diff --git a/source/src/main/java/io/wdd/source/shell/lib/wdd-lib-env.sh b/source/src/main/java/io/wdd/source/shell/lib/wdd-lib-env.sh index 1f4f3eb..5effbe6 100644 --- a/source/src/main/java/io/wdd/source/shell/lib/wdd-lib-env.sh +++ b/source/src/main/java/io/wdd/source/shell/lib/wdd-lib-env.sh @@ -140,13 +140,12 @@ StartIOTest() { } -GetAgentLatestVersion(){ +GetAgentLatestVersion() { ls /octopus-agent | grep "octopus-agent" | cut -d "-" -f3- | cut -d"." -f1 } - ####################################### # description # Globals: @@ -319,31 +318,30 @@ if [[ $(cat /etc/hostname | cut -d"-" -f 3 | grep -c '^[0-9][0-9]') -gt 0 ]]; th else machineNumber=99 fi -cat >/etc/environment.d/octopus-agent.conf </etc/environment.d/octopus-agent.conf </octopus-agent/octopus-agent.conf < /octopus-agent/octopus-agent.conf" diff --git a/source/src/main/java/io/wdd/source/shell/lib/wdd-lib-file.sh b/source/src/main/java/io/wdd/source/shell/lib/wdd-lib-file.sh index 1e49f77..8d2ce2a 100644 --- a/source/src/main/java/io/wdd/source/shell/lib/wdd-lib-file.sh +++ b/source/src/main/java/io/wdd/source/shell/lib/wdd-lib-file.sh @@ -5,7 +5,7 @@ # shellcheck disable=SC1091 # Load Generic Libraries -. /octopus-agent/shell/lib/wdd-lib-log.shwdd-lib-log.sh +. /octopus-agent/shell/lib/wdd-lib-log.sh # Functions diff --git a/source/src/main/java/io/wdd/source/shell/lib/wdd-lib-os.sh b/source/src/main/java/io/wdd/source/shell/lib/wdd-lib-os.sh deleted file mode 100644 index cbed083..0000000 --- a/source/src/main/java/io/wdd/source/shell/lib/wdd-lib-os.sh +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/bash - -. /octopus-agent/shell/lib/wdd-lib-log.sh - -OctopusAgentUrl=https://happybirthday.107421.xyz/octopus-agent/ -OctopusAgentPath=/octopus-agent/shell - -DependLibFiles=( - wdd-lib-file.sh - wdd-lib-log.sh - wdd-lib-os.sh - wdd-lib-env.sh - wdd-lib-sys.sh -) - -CheckAndDownloadLatestVersion() { - - log "checking for the latest version" - local latestVersion=$(curl $OctopusAgentUrl | grep -v h1 | grep "a href=" | awk '{print$2}' | cut -d">" -f2 | cut -d"<" -f1) - - log "" - log "octopus agent latest version is => [ $latestVersion ]" - log "" - rm -rf /octopus-agent/*.jar - cd /octopus-agent - - log "start to download the latest version !" - wget -q "$OctopusAgentUrl$latestVersion" - cp "$latestVersion" agent.jar - log "" - log "" - log "---------------- ls the /octopus-agent ----------------------" - ls /octopus-agent/ | grep jar - log "----------------------------------------------" - -} - -####################################### -# description -# Globals: -# BLUE -# DependLibFiles -# OctopusAgentPath -# RED -# RepoSourcePath -# libfile -# Arguments: -# None -####################################### -DownloadAllFile() { - - FunctionStart - - warn "[CLEAN_UP] clean the old octopus agent staff !" - rm -rf $OctopusAgentPath/lib - rm -rf $OctopusAgentPath/ - - mkdir -p $OctopusAgentPath - mkdir -p $OctopusAgentPath/lib - - echo "start to download all needed lib shell" - for libfile in ${DependLibFiles[*]}; do - - log "lib file is $libfile" - wget "$RepoSourcePath/lib/$libfile" -qO $OctopusAgentPath/lib/$libfile - FunctionSuccess - - done - - colorEcho $BLUE "start to download octopus agent !" - - # check for latest version - # download the lasted jar - cd $OctopusAgentPath - CheckAndDownloadLatestVersion - - FunctionSuccess - FunctionEnd - -}