From 32b4e4a94c1a81119d77ce9a852fcfe63e5d8d4e Mon Sep 17 00:00:00 2001 From: zeaslity Date: Wed, 13 Dec 2023 10:36:47 +0800 Subject: [PATCH] [ Agent ] [ App ] - offline installation chrony --- agent-go/executor/AppFunction.go | 3 + agent-go/executor/BaseFunction.go | 62 ++++++++++++++----- .../wdd/func/auto/beans/AppFunctionEnum.java | 5 ++ .../wdd/func/auto/beans/BaseFunctionEnum.java | 1 - .../func/auto/service/AppFuncScheduler.java | 3 +- 5 files changed, 55 insertions(+), 19 deletions(-) diff --git a/agent-go/executor/AppFunction.go b/agent-go/executor/AppFunction.go index 83c7276..d088b66 100644 --- a/agent-go/executor/AppFunction.go +++ b/agent-go/executor/AppFunction.go @@ -30,6 +30,9 @@ func (op *AgentOsOperator) Deploy(appFuncName string, funcArgs ...string) (bool, var result []string switch appFuncName { + case "DEPLOY_CHRONY_SERVER": + resultOK, result = op.installChronyByDockerExec(funcArgs) + break case "DEPLOY_RKE": resultOK, result = op.deployRke(funcArgs) break diff --git a/agent-go/executor/BaseFunction.go b/agent-go/executor/BaseFunction.go index 73b3215..e6482ea 100644 --- a/agent-go/executor/BaseFunction.go +++ b/agent-go/executor/BaseFunction.go @@ -86,12 +86,6 @@ func (op *AgentOsOperator) Exec(baseFuncName string, funcArgs ...string) (bool, case "installHarbor": resultOk, errorLog = op.installHarborExec() break - case "installChrony": - resultOk, errorLog = op.installChronyExec() - break - case "chronyToPublicNTP": - resultOk, errorLog = op.chronyToPublicNTPExec() - break case "chronyToMaster": resultOk, errorLog = op.chronyToMasterExec(funcArgs) break @@ -1752,10 +1746,6 @@ func (op *AgentOsOperator) installChronyExec() (bool, []string) { return false, resultLog } - if !op.IsOsTypeUbuntu || !op.CanAccessInternet { - return op.installChronyByDockerExec() - } - // install chrony resultOk, l := AllCommandExecutor( append( @@ -1784,7 +1774,7 @@ func (op *AgentOsOperator) installChronyExec() (bool, []string) { return true, nil } -func (op *AgentOsOperator) installChronyByDockerExec() (bool, []string) { +func (op *AgentOsOperator) installChronyByDockerExec(funcArgs []string) (bool, []string) { // check docker if !BasicCommandExistByPath("docker") { @@ -1816,29 +1806,29 @@ func (op *AgentOsOperator) installChronyByDockerExec() (bool, []string) { return false, append(resultLog, "[installChronyByDockerExec] - docker chrony run error !") } - AllCommandExecutor([]string{ + BasicPrettyPrint(AllCommandExecutor([]string{ "docker", "exec", "chrony", "chronyc", "tracking", - }) + })) - AllCommandExecutor([]string{ + BasicPrettyPrint(AllCommandExecutor([]string{ "docker", "exec", "chrony", "chronyc", "sources", - }) + })) - AllCommandExecutor([]string{ + BasicPrettyPrint(AllCommandExecutor([]string{ "docker", "exec", "chrony", "chronyc", "sourcestats", - }) + })) return true, []string{ "[installChronyByDockerExec] - install success !", @@ -1891,6 +1881,44 @@ func (op *AgentOsOperator) chronyToMasterExec(args []string) (bool, []string) { } } + parseIP := net.ParseIP(args[0]) + if parseIP == nil { + return false, []string{ + "[chronyToMasterExec] - ip args error !", + } + } + + // modify the systemd-timesync.service + ntpFile := "/etc/systemd/timesyncd.conf" + AllCommandExecutor([]string{ + "sed", + "-i", + "s/#NTP=/NTP=" + args[0] + "/g", + ntpFile, + }) + + // todo restart + BasicPrettyPrint(AllCompleteExecutor([][]string{ + { + "systemctl", + "restart", + "systemd-timesyncd.service", + }, + { + "sleep", + "2", + }, + { + "timedatectl", + "show-timesync", + "--all", + }, + { + "timedatectl", + "status", + }, + })) + return true, []string{ "[chronyToMasterExec] - install success !", } diff --git a/server/src/main/java/io/wdd/func/auto/beans/AppFunctionEnum.java b/server/src/main/java/io/wdd/func/auto/beans/AppFunctionEnum.java index 0f4d713..c675c28 100644 --- a/server/src/main/java/io/wdd/func/auto/beans/AppFunctionEnum.java +++ b/server/src/main/java/io/wdd/func/auto/beans/AppFunctionEnum.java @@ -5,6 +5,11 @@ package io.wdd.func.auto.beans; */ public enum AppFunctionEnum { + DEPLOY_CHRONY_SERVER( + "DEPLOY_CHRONY_SERVER", + "使用docker部署chrony server" + ), + DEPLOY_RKE( "DEPLOY_RKE", diff --git a/server/src/main/java/io/wdd/func/auto/beans/BaseFunctionEnum.java b/server/src/main/java/io/wdd/func/auto/beans/BaseFunctionEnum.java index dfe3d6f..278ae40 100644 --- a/server/src/main/java/io/wdd/func/auto/beans/BaseFunctionEnum.java +++ b/server/src/main/java/io/wdd/func/auto/beans/BaseFunctionEnum.java @@ -7,7 +7,6 @@ public enum BaseFunctionEnum { "关闭防火墙" ), - DISABLE_SWAP( "disableSwap", "关闭虚拟内存" diff --git a/server/src/main/java/io/wdd/func/auto/service/AppFuncScheduler.java b/server/src/main/java/io/wdd/func/auto/service/AppFuncScheduler.java index 77dd26c..32d51eb 100644 --- a/server/src/main/java/io/wdd/func/auto/service/AppFuncScheduler.java +++ b/server/src/main/java/io/wdd/func/auto/service/AppFuncScheduler.java @@ -100,6 +100,7 @@ public class AppFuncScheduler { ); List appFunctionEnumList = List.of( + AppFunctionEnum.DEPLOY_CHRONY_SERVER // AppFunctionEnum.DEPLOY_RKE // AppFunctionEnum.DEPLOY_TEST_NFS // AppFunctionEnum.DEPLOY_K8S_NAMESPACE, @@ -109,7 +110,7 @@ public class AppFuncScheduler { // AppFunctionEnum.DEPLOY_INGRESS, // AppFunctionEnum.DEPLOY_FRONTEND // AppFunctionEnum.DEPLOY_BACKEND - AppFunctionEnum.DEPLOY_K8S_SRS +// AppFunctionEnum.DEPLOY_K8S_SRS );