优化Docker和SSH命令,增强系统配置和安装流程

- 更新Docker安装命令,默认版本升级到20.10.24
- 新增Docker配置命令,支持主节点配置daemon.json
- 修改SSH相关命令,增加输出换行以提高可读性
- 优化Zsh插件安装,使用完整git路径
- 改进系统配置中的主机名生成逻辑,增加内网IP最后一段标识
- 完善操作系统类型检测,扩展Ubuntu类型系统识别
- 调整包管理操作中的输出格式
This commit is contained in:
zeaslity
2025-03-05 16:47:14 +08:00
parent 2e96490926
commit 5c2325b7e4
5 changed files with 102 additions and 16 deletions

View File

@@ -223,6 +223,7 @@ func addSSHSubcommands(sshCmd *cobra.Command) {
Use: "key",
Short: "安装默认的ssh-key",
Run: func(cmd *cobra.Command, args []string) {
fmt.Println("")
log.Info("安装默认的ssh-key!")
// 创建.ssh目录
@@ -262,9 +263,13 @@ func addSSHSubcommands(sshCmd *cobra.Command) {
// 检查
if utils.FindContentInFile("wdd@cmii.com", "/root/.ssh/authorized_keys") {
log.Info("[InstallDefaultSSHKey] - install success !")
fmt.Println("")
} else {
log.Error("[InstallDefaultSSHKey] - authorized_keys don't contain the ssh-pub key !")
}
fmt.Println("")
fmt.Println("")
},
}
@@ -272,6 +277,7 @@ func addSSHSubcommands(sshCmd *cobra.Command) {
Use: "port",
Short: "修改ssh端口",
Run: func(cmd *cobra.Command, args []string) {
fmt.Println("")
log.Info("修改ssh端口!")
// 检查参数
@@ -300,6 +306,8 @@ func addSSHSubcommands(sshCmd *cobra.Command) {
}
log.Info("[ModifySSHPort] modify ssh port to: %s success!", port)
fmt.Println("")
fmt.Println("")
},
}
@@ -308,6 +316,7 @@ func addSSHSubcommands(sshCmd *cobra.Command) {
Use: "config",
Short: "修改ssh配置 为wdd默认配置!",
Run: func(cmd *cobra.Command, args []string) {
fmt.Println("")
log.Info("修改ssh配置 为wdd默认配置!")
// 备份文件
@@ -326,6 +335,8 @@ func addSSHSubcommands(sshCmd *cobra.Command) {
}
log.Info("[sshd配置修改] 成功!")
fmt.Println("")
fmt.Println("")
},
}
@@ -337,8 +348,11 @@ func addSSHSubcommands(sshCmd *cobra.Command) {
func addDockerSubcommands(cmd *cobra.Command) {
onlineCmd := &cobra.Command{
Use: "online [version]",
Short: "网络安装Docker, 如果不指定参数默认安装20.10.15版本",
Short: "网络安装Docker, 如果不指定参数默认安装20.10.24版本",
Run: func(cmd *cobra.Command, args []string) {
fmt.Println("")
log.Info("网络安装Docker, 如果不指定参数默认安装20.10.24版本")
// 检查参数
if len(args) > 0 {
@@ -445,7 +459,7 @@ func addDockerSubcommands(cmd *cobra.Command) {
}
} else {
log.Error("当前系统不是ubuntu系统暂时无法安装docker!")
log.Error("当前系统不是ubuntu系统暂时无法安装docker! 请使用local的方式安装")
return
}
@@ -463,6 +477,8 @@ func addDockerSubcommands(cmd *cobra.Command) {
}
log.Info("docker启动成功! ")
fmt.Println("")
fmt.Println("")
},
}
@@ -510,7 +526,7 @@ func addDockerSubcommands(cmd *cobra.Command) {
localCmd := &cobra.Command{
Use: "local",
Short: "本地安装Docker, 默认安装20.10.15版本, 安装目录为 " + dockerLocalInstallPath,
Short: "本地安装Docker, 默认安装20.10.15版本, 安装文件应该为 " + dockerLocalInstallPath,
Run: func(cmd *cobra.Command, args []string) {
log.Info("Installing Docker from local file: %s", dockerLocalInstallPath)
@@ -604,7 +620,56 @@ func addDockerSubcommands(cmd *cobra.Command) {
},
}
cmd.AddCommand(onlineCmd, removeCmd, localCmd)
configCmd := &cobra.Command{
Use: "config",
Short: "配置Docker",
Run: func(cmd *cobra.Command, args []string) {
fmt.Println("")
log.Info("配置Docker-此命令仅在主节点执行即可")
// 检查docker是否安装
dockerExists := op.CommandExistsByPath("docker")
if !dockerExists {
log.Error("Docker 未安装,请先安装 Docker")
return
}
// 获取当前内网IP
ip := config.ConfigCache.Agent.Network.Interfaces[0].IPv4
if ip == "" {
log.Error("获取当前内网IP失败, 无法进行docker config配置")
return
}
// 配置docker的daemon.json
if !utils.AppendOverwriteContentToFile(beans.DockerDeamonConfig, "/etc/docker/daemon.json") {
log.Error("配置docker的daemon.json失败")
return
}
// 替换其中的字段
utils.FindAndReplaceContentInFile("DockerRegisterDomain", ip, "/etc/docker/daemon.json")
// 重启docker
op.SystemdRestart("docker")
// 检查docker是否重启成功
ok, resultLog := op.SystemIsRunning("docker")
if !ok {
log.Error("docker daemon config 失败, docker重启失败: %s", resultLog)
return
}
daemonJsonContent := utils.ReadAllContentFromFile("/etc/docker/daemon.json")
log.Info("修改daemon config 成功, docker重启成功!")
utils.BeautifulPrintListWithTitle(daemonJsonContent, "docker daemon.json")
fmt.Println("")
fmt.Println("")
},
}
cmd.AddCommand(onlineCmd, removeCmd, localCmd, configCmd)
}
func addDockerComposeSubcommands(cmd *cobra.Command) {
@@ -706,7 +771,7 @@ func addDockerComposeSubcommands(cmd *cobra.Command) {
localCmd := &cobra.Command{
Use: "local [path]",
Short: "本地安装Docker Compose",
Short: "本地安装DockerCompose 安装文件应该为 " + dockerComposeLocalInstallPath,
Args: cobra.ExactArgs(1),
Run: func(cmd *cobra.Command, args []string) {
log.Info("Installing Docker Compose from local file...")