global.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package global
  2. import (
  3. "time"
  4. "xg_auto_deploy/internal/config"
  5. "xg_auto_deploy/internal/logger"
  6. "xg_auto_deploy/internal/models"
  7. "golang.org/x/crypto/ssh"
  8. )
  9. var ServerNodeConfigs = make(map[string]models.ServerNodeConfig)
  10. var XginiConfigMap map[string]string
  11. var ClusterConfigMap map[string]string
  12. var ClusterInfo = &models.ClusterConfig{}
  13. //var Logs *logrus.Logger
  14. var Logs = logger.Init("./logs/xg_autodeploy.log", "info")
  15. func InitNodeSetting(path string) {
  16. XginiConfigMap = make(map[string]string)
  17. ClusterConfigMap = make(map[string]string)
  18. //Logs = logger.Init("./logs/xg_autodeploy.log", "info")
  19. configTemp := config.InitNodeSetting(path)
  20. //获取配置文件里的[xugu]组内容
  21. XginiConfigMap = configTemp.GetXuguini()
  22. ClusterConfigMap = configTemp.GetCluster()
  23. //ClusterInfo = config.ReadXgClusterConfig(ClusterConfigMap["local_file"])
  24. var err error
  25. if ClusterConfigMap["local_file"] != "" {
  26. ClusterInfo, err = config.GetClusterConfig(ClusterConfigMap["local_file"])
  27. if err != nil {
  28. Logs.Fatalf("config.GetClusterConfig 失败")
  29. }
  30. }
  31. for key, value := range configTemp.GetNodeConfig() {
  32. //fmt.Println(key, value)
  33. sysInfo := &models.SysInfo{
  34. OsStackSize: "未检测",
  35. OsOpenFiles: "未检测",
  36. CoreWmemDefault: "未检测",
  37. CoreRmemDefault: "未检测",
  38. CoreRmemMax: "未检测",
  39. CoreWmemMax: "未检测",
  40. }
  41. appInfo := &models.AppInfo{
  42. Gcc: "未检测",
  43. Libaio: "未检测",
  44. Snmpd: "未检测",
  45. Ntpd: "未检测",
  46. }
  47. sshInfo := &models.SSHInfo{
  48. SSHClient: &ssh.ClientConfig{
  49. User: value.User,
  50. Auth: []ssh.AuthMethod{
  51. ssh.Password(value.Password),
  52. },
  53. // 设置其他字段
  54. ClientVersion: "",
  55. Timeout: 5 * time.Second, // 设置连接超时时间
  56. HostKeyCallback: ssh.InsecureIgnoreHostKey(), // 不验证远程主机的身份,仅用于示例,请不要在生产环境中使用
  57. },
  58. }
  59. nodeTemp := models.ServerNodeConfig{
  60. NodeId: key,
  61. ServerNodeInfo: value,
  62. SysInfo: sysInfo,
  63. AppInfo: appInfo,
  64. SSHInfo: sshInfo,
  65. }
  66. ServerNodeConfigs[key] = nodeTemp
  67. }
  68. }