From 3f063500899cf1e56bc90c25167eb0f42618a462 Mon Sep 17 00:00:00 2001 From: zeaslity Date: Mon, 13 Nov 2023 10:25:15 +0800 Subject: [PATCH] from vscode --- .gitignore | 1 + .run/go build agent-go.run.xml | 1 + agent-go/executor/BaseFunction.go | 34 ++++++++++++++----------- agent-go/executor/CommandExecutor.go | 2 +- agent-go/executor/FunctionalExecutor.go | 4 ++- agent-go/executor/HarborExecutor.go | 17 ++++++++----- agent-go/octopus-agent-shanghai.yaml | 3 ++- agent-go/server-env.yaml | 10 ++++---- 8 files changed, 42 insertions(+), 30 deletions(-) diff --git a/.gitignore b/.gitignore index 2f355e9..ae5e6f3 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,4 @@ build/ ### VS Code ### .vscode/ /agent-go/output/ +/agent-go/agent-go diff --git a/.run/go build agent-go.run.xml b/.run/go build agent-go.run.xml index e56510f..9605132 100644 --- a/.run/go build agent-go.run.xml +++ b/.run/go build agent-go.run.xml @@ -4,6 +4,7 @@ + diff --git a/agent-go/executor/BaseFunction.go b/agent-go/executor/BaseFunction.go index 5e4b401..e2e7b89 100644 --- a/agent-go/executor/BaseFunction.go +++ b/agent-go/executor/BaseFunction.go @@ -907,19 +907,19 @@ func (op *AgentOsOperator) installHarbor() [][]string { //{ // "rm", // "-rf", - // "/root/wdd/harbor-offline-installer-v2.1.0.tgz", + // "/root/wdd/harbor-offline-installer-v2.9.0.tgz", //}, //{ // "wget", // "--no-check-certificate", - // op.OssOfflinePrefix + "harbor-offline-installer-v2.1.0.tgz", + // op.OssOfflinePrefix + "harbor-offline-installer-v2.9.0.tgz", // "-O", - // "/root/wdd/harbor-offline-installer-v2.1.0.tgz", + // "/root/wdd/harbor-offline-installer-v2.9.0.tgz", //}, { "tar", "-zvxf", - "/root/wdd/harbor-offline-installer-v2.1.0.tgz", + "/root/wdd/harbor-offline-installer-v2.9.0.tgz", "-C", "/root/wdd/", }, @@ -994,7 +994,7 @@ func (op *AgentOsOperator) installHarborExec() (bool, []string) { resultOk, resultLog := AllCommandExecutor([]string{ "docker-compose", "-f", - "/root/wdd/harbor/harbor.yml", + "/root/wdd/harbor/docker-compose.yml", "up", "-d", }) @@ -1008,7 +1008,7 @@ func (op *AgentOsOperator) installHarborExec() (bool, []string) { } // download offline file - harborOfflineFileURL := op.OssOfflinePrefix + "harbor-offline-installer-v2.1.0.tgz" + harborOfflineFileURL := op.OssOfflinePrefix + "harbor-offline-installer-v2.9.0.tgz" log.InfoF("[install harbor] - start to download harbor offline installer from => %s !", harborOfflineFileURL) resultOk, resultLog := AllCompleteExecutor([][]string{ { @@ -1019,7 +1019,7 @@ func (op *AgentOsOperator) installHarborExec() (bool, []string) { { "rm", "-rf", - "/root/wdd/harbor-offline-installer-v2.1.0.tgz", + "/root/wdd/harbor-offline-installer-v2.9.0.tgz", }, { "rm", @@ -1031,14 +1031,14 @@ func (op *AgentOsOperator) installHarborExec() (bool, []string) { "--no-check-certificate", harborOfflineFileURL, "-qO", - "/root/wdd/harbor-offline-installer-v2.1.0.tgz", + "/root/wdd/harbor-offline-installer-v2.9.0.tgz", }}, ) if !resultOk { return false, append(resultLog, "download harbor offline installer failed!") } - if !BasicFileExistAndNotNull("/root/wdd/harbor-offline-installer-v2.1.0.tgz") { + if !BasicFileExistAndNotNull("/root/wdd/harbor-offline-installer-v2.9.0.tgz") { return false, []string{"download harbor offline installer failed!"} } @@ -1047,7 +1047,7 @@ func (op *AgentOsOperator) installHarborExec() (bool, []string) { { "tar", "-zvxf", - "/root/wdd/harbor-offline-installer-v2.1.0.tgz", + "/root/wdd/harbor-offline-installer-v2.9.0.tgz", "-C", "/root/wdd/", }, @@ -1077,19 +1077,19 @@ func (op *AgentOsOperator) installHarborExec() (bool, []string) { { "sed", "-i", - "s/$HarborHostName/" + op.AgentServerInfo.ServerIPInV4 + "/g", + "s/HarborHostName/" + op.AgentServerInfo.ServerIPInV4 + "/g", "/root/wdd/harbor/harbor.yml", }, { "sed", "-i", - "s/$HarborHostPort/8033/g", + "s/HarborHostPort/8033/g", "/root/wdd/harbor/harbor.yml", }, { "sed", "-i", - "s/$HarborAdminPas/V2ryStr@ngPss/g", + "s/HarborAdminPas/V2ryStr@ngPss/g", "/root/wdd/harbor/harbor.yml", }, { @@ -1103,12 +1103,16 @@ func (op *AgentOsOperator) installHarborExec() (bool, []string) { // install log.Info("[install harbor] - going to start harbor !") - ReadTimeCommandExecutor([]string{ + executor := ReadTimeCommandExecutor([]string{ "bash", "/root/wdd/harbor/install.sh", - "--with-chartmuseum", }, ) + if !executor { + return false, []string{ + "[install harbor] - harbor start FAILED !", + } + } msg := "[install harbor] - harbor start complete !" log.Info(msg) diff --git a/agent-go/executor/CommandExecutor.go b/agent-go/executor/CommandExecutor.go index dff6267..837a5ca 100644 --- a/agent-go/executor/CommandExecutor.go +++ b/agent-go/executor/CommandExecutor.go @@ -82,7 +82,7 @@ func Execute(em *ExecutionMessage) (bool, []string) { if err != nil { resultLog = append(resultLog, " 命令执行错误如下 ", err.Error()) } - resultLog = append(resultLog, fmt.Sprintf("命令 %s 执行结果为 %s", executionContent, strconv.FormatBool(ok))) + resultLog = append(resultLog, fmt.Sprintf("命令 %v 执行结果为 %s", executionContent, strconv.FormatBool(ok))) // debug log.DebugF("%v", resultLog) diff --git a/agent-go/executor/FunctionalExecutor.go b/agent-go/executor/FunctionalExecutor.go index 507ec9c..2fc73b8 100644 --- a/agent-go/executor/FunctionalExecutor.go +++ b/agent-go/executor/FunctionalExecutor.go @@ -185,7 +185,7 @@ func PureResultSingleExecuteBatch(singleCommandList [][]string) (resultOK bool) } // ReadTimeCommandExecutor 执行命令,并且实时返回结果 -func ReadTimeCommandExecutor(singleLineCommand []string) { +func ReadTimeCommandExecutor(singleLineCommand []string) bool { cmd := exec.Command(singleLineCommand[0], singleLineCommand[1:]...) stdout, err := cmd.StdoutPipe() if err != nil { @@ -205,8 +205,10 @@ func ReadTimeCommandExecutor(singleLineCommand []string) { if err := cmd.Wait(); err != nil { log.ErrorF("command %v result error => %v", singleLineCommand, err) + return false } + return true } func realTimeOutput(r io.Reader) { diff --git a/agent-go/executor/HarborExecutor.go b/agent-go/executor/HarborExecutor.go index 561e86c..9098f68 100644 --- a/agent-go/executor/HarborExecutor.go +++ b/agent-go/executor/HarborExecutor.go @@ -3,9 +3,10 @@ package executor import ( "context" "fmt" + "net" + "github.com/mittwald/goharbor-client/v5/apiv2" "github.com/mittwald/goharbor-client/v5/apiv2/model" - "net" ) type HarborOperator struct { @@ -58,18 +59,20 @@ func (hOp *HarborOperator) CreateProjectExec(funcArgs []string) (bool, []string) targetHarborHost := funcArgs[0] parseIP := net.ParseIP(targetHarborHost) - if parseIP != nil { + if parseIP == nil { return false, []string{ - "[Harbor CreateProjectExec] - ip format is wrong!", + fmt.Sprintf("[Harbor CreateProjectExec] - ip format is wrong! parseIP is => %s ", parseIP), } } - hOp.TargetHarborHost = string(parseIP) + ":" + hOp.HarborPort + hOp.TargetHarborHost = "http://" + targetHarborHost + ":" + hOp.HarborPort + "/api" + + log.DebugF("[Harbor CreateProjectExec] - harbor host is => %s", hOp.TargetHarborHost) // check connection client, err := apiv2.NewRESTClientForHost(hOp.TargetHarborHost, hOp.HarborAdminUser, hOp.HarborAdminPass, nil) if err != nil { - errorLog := fmt.Sprintf("Error creating REST client: %v\n", err) + errorLog := fmt.Sprintf("Error creating REST client: %s\n", err.Error()) log.Error(errorLog) return false, []string{errorLog} } @@ -94,13 +97,13 @@ func (hOp *HarborOperator) CreateProjectExec(funcArgs []string) (bool, []string) ctx := context.Background() err = client.NewProject(ctx, cmiiProject) if err != nil { - errorLog := fmt.Sprintf("Error creating project: %v\n", err) + errorLog := fmt.Sprintf("Error creating project: %s\n", err.Error()) return false, []string{errorLog} } err = client.NewProject(ctx, rancherProject) if err != nil { - errorLog := fmt.Sprintf("Error creating project: %v\n", err) + errorLog := fmt.Sprintf("Error creating project: %s\n", err.Error()) return false, []string{errorLog} } diff --git a/agent-go/octopus-agent-shanghai.yaml b/agent-go/octopus-agent-shanghai.yaml index 54f59ef..f110691 100644 --- a/agent-go/octopus-agent-shanghai.yaml +++ b/agent-go/octopus-agent-shanghai.yaml @@ -37,7 +37,8 @@ octopus: executor: # agent执行一条Command的最长超时时间 processMaxTimeOut: 60 - ossOfflinePrefix: "https://oss-s1.107421.xyz" +# ossOfflinePrefix: "https://oss-s1.107421.xyz" + ossOfflinePrefix: "http://10.250.0.65:9000/octopus/" status: app: - Nginx/nginx diff --git a/agent-go/server-env.yaml b/agent-go/server-env.yaml index 4a0900c..b88e0cd 100644 --- a/agent-go/server-env.yaml +++ b/agent-go/server-env.yaml @@ -1,13 +1,13 @@ -serverName: "Chengdu-amd64-90" +serverName: "Chengdu-amd64-65" serverIpPbV4: "183.220.149.17" -serverIpInV4: "" +serverIpInV4: "10.250.0.65 " serverIpPbV6: "" serverIpInV6: "" location: "Chengdu Sichuan CN" provider: "AS139080 The Internet Data Center of Sichuan Mobile Communication Company Limited" managePort: "22" cpuCore: "12 @ 4299.998 MHz" -cpuBrand: "Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz" +cpuBrand: "Intel(R) Core(TM) i7-8250U CPU @ 2.90GHz" memoryTotal: "7.6 GB" diskTotal: "914.9 GB" diskUsage: "12.3 GB" @@ -15,9 +15,9 @@ archInfo: "x86_64 (64 Bit)" osInfo: " Ubuntu 20.04.5 LTS" osKernelInfo: "5.4.0-135-generic" -tcpControl: "cubic " +tcpControl: "bbr " virtualization: "Dedicated" ioSpeed: "150 MB/s " -machineId: "fakemachinid123 " +machineId: " lapwdd-machinid123 " agentVersion: "" topicName: ""