global.go 2.1 KB

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