[ Agent ] [ Executor ] - 新增InstallHarbor部分
This commit is contained in:
@@ -963,8 +963,144 @@ func (op *AgentOsOperator) installHarbor() [][]string {
|
|||||||
return installHarborFunc
|
return installHarborFunc
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// installHarborExec install harbor offline
|
||||||
func (op *AgentOsOperator) installHarborExec() (bool, []string) {
|
func (op *AgentOsOperator) installHarborExec() (bool, []string) {
|
||||||
return true, nil
|
|
||||||
|
// check docker-compose
|
||||||
|
if !BasicCommandExists("docker-compose") {
|
||||||
|
return false, []string{
|
||||||
|
"docker-compose uninstalled ! can't install harbor!",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// check already installed
|
||||||
|
ok, _ := PipelineCommandExecutor([][]string{
|
||||||
|
{
|
||||||
|
"docker",
|
||||||
|
"ps",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"grep",
|
||||||
|
"-q",
|
||||||
|
"harbor-core",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
if ok {
|
||||||
|
alreadyInstalledLog := []string{
|
||||||
|
"install harbor, container harbor-core already running! harbor installed !",
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Info(alreadyInstalledLog[0])
|
||||||
|
|
||||||
|
resultOk, resultLog := AllCommandExecutor([]string{
|
||||||
|
"docker-compose",
|
||||||
|
"-f",
|
||||||
|
"/root/wdd/harbor/harbor.yml",
|
||||||
|
"up",
|
||||||
|
"-d",
|
||||||
|
})
|
||||||
|
|
||||||
|
if !resultOk {
|
||||||
|
alreadyInstalledLog = append(alreadyInstalledLog, "restart docker-compose file failed !")
|
||||||
|
return false, append(alreadyInstalledLog, resultLog...)
|
||||||
|
} else {
|
||||||
|
return true, append(alreadyInstalledLog, "restart docker-compose file success !")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// download offline file
|
||||||
|
resultOk, resultLog := AllCompleteExecutor([][]string{
|
||||||
|
{
|
||||||
|
"mkdir",
|
||||||
|
"-p",
|
||||||
|
"/root/wdd/",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/root/wdd/harbor-offline-installer-v2.1.0.tgz",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/root/wdd/harbor",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"wget",
|
||||||
|
"--no-check-certificate",
|
||||||
|
g.BaseFuncOssUrlPrefix + "harbor-offline-installer-v2.1.0.tgz",
|
||||||
|
"-qO",
|
||||||
|
"/root/wdd/harbor-offline-installer-v2.1.0.tgz",
|
||||||
|
}},
|
||||||
|
)
|
||||||
|
if !resultOk {
|
||||||
|
return false, append(resultLog, "download harbor offline installer failed!")
|
||||||
|
}
|
||||||
|
|
||||||
|
if !BasicFileExistAndNotNull("/root/wdd/harbor-offline-installer-v2.1.0.tgz") {
|
||||||
|
return false, []string{"download harbor offline installer failed!"}
|
||||||
|
}
|
||||||
|
|
||||||
|
// unzip
|
||||||
|
AllCompleteExecutor([][]string{
|
||||||
|
{
|
||||||
|
"tar",
|
||||||
|
"-zvxf",
|
||||||
|
"/root/wdd/harbor-offline-installer-v2.1.0.tgz",
|
||||||
|
"-C",
|
||||||
|
"/root/wdd/",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"rm",
|
||||||
|
"-rf",
|
||||||
|
"/root/wdd/harbor/harbor.yml",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
// configuration
|
||||||
|
AllCommandExecutor([]string{
|
||||||
|
"wget",
|
||||||
|
"--no-check-certificate",
|
||||||
|
g.BaseFuncOssUrlPrefix + "harbor-config-template.yml",
|
||||||
|
"-qO",
|
||||||
|
"/root/wdd/harbor/harbor.yml",
|
||||||
|
})
|
||||||
|
if !BasicFileExistAndNotNull("/root/wdd/harbor/harbor.yml") {
|
||||||
|
return false, []string{"harbor config template file download error !"}
|
||||||
|
}
|
||||||
|
|
||||||
|
AllCompleteExecutor([][]string{
|
||||||
|
{
|
||||||
|
"sed",
|
||||||
|
"-i",
|
||||||
|
"s/$HarborHostName/" + op.AgentServerInfo.ServerIPInV4 + "/g",
|
||||||
|
"/root/wdd/harbor/harbor.yml",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sed",
|
||||||
|
"-i",
|
||||||
|
"s/$HarborHostPort/8033/g",
|
||||||
|
"/root/wdd/harbor/harbor.yml",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sed",
|
||||||
|
"-i",
|
||||||
|
"s/$HarborPassword/V2ryStr@ngPss/g",
|
||||||
|
"/root/wdd/harbor/harbor.yml",
|
||||||
|
}})
|
||||||
|
|
||||||
|
log.InfoF("harbor config changed success to => %s!", op.AgentServerInfo.ServerIPInV4)
|
||||||
|
|
||||||
|
// install
|
||||||
|
executor, l := AllCommandExecutor([]string{
|
||||||
|
"/root/wdd/harbor/install.sh",
|
||||||
|
"--with-chartmuseum",
|
||||||
|
})
|
||||||
|
if !executor {
|
||||||
|
return false, l
|
||||||
|
}
|
||||||
|
|
||||||
|
return true, l
|
||||||
}
|
}
|
||||||
|
|
||||||
func (op *AgentOsOperator) chronyToPublicNTP() [][]string {
|
func (op *AgentOsOperator) chronyToPublicNTP() [][]string {
|
||||||
@@ -1069,7 +1205,7 @@ func (op *AgentOsOperator) chronyToPublicNTPExec() (bool, []string) {
|
|||||||
{
|
{
|
||||||
"sed",
|
"sed",
|
||||||
"-i",
|
"-i",
|
||||||
"s/pool ntp.ubuntu.com iburst/server ntp2.aliyun.com iburst/g",
|
"s/pool ntp.ubuntu.com/server ntp2.aliyun.com/g",
|
||||||
chronyFile,
|
chronyFile,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -88,6 +88,7 @@ public class BaseFuncScheduler {
|
|||||||
List<BaseFunctionEnum> masterNodeProcedureList = List.of(
|
List<BaseFunctionEnum> masterNodeProcedureList = List.of(
|
||||||
BaseFunctionEnum.DISABLE_SWAP,
|
BaseFunctionEnum.DISABLE_SWAP,
|
||||||
BaseFunctionEnum.SHUTDOWN_FIREWALL,
|
BaseFunctionEnum.SHUTDOWN_FIREWALL,
|
||||||
|
BaseFunctionEnum.INSTALL_CHRONY,
|
||||||
BaseFunctionEnum.CHRONY_TO_PUBLIC_NTP,
|
BaseFunctionEnum.CHRONY_TO_PUBLIC_NTP,
|
||||||
BaseFunctionEnum.INSTALL_DEFAULT_SSH_KEY,
|
BaseFunctionEnum.INSTALL_DEFAULT_SSH_KEY,
|
||||||
BaseFunctionEnum.INSTALL_DOCKER,
|
BaseFunctionEnum.INSTALL_DOCKER,
|
||||||
|
|||||||
Reference in New Issue
Block a user