Commit e4d1223e authored by 陈子龙's avatar 陈子龙

主机管理状态检测 fix

parent a6c3d61e
......@@ -36,7 +36,7 @@ type Config struct {
LocationUrl string
LocationKey string
PrivateKeySSH string
PublicKeySSH string
//PublicKeySSH string
OrderDingTalkAccessToken string
OrderDingTalkSecret string
SmsAccessKeyId string
......
......@@ -76,8 +76,8 @@ func initConfig() {
AccessRuleModeKey: "accessRuleMode",
LocationUrl: util.SetEnvStr("LOCATION_URL", "https://apis.map.qq.com/ws/location/v1/ip"),
LocationKey: util.SetEnvStr("LOCATION_KEY", "QKFBZ-PGGWJ-VZQFF-FHPA7-QWT5H-YHF4T"),
PrivateKeySSH: util.SetEnvStr("PRIVATE_KEY_SSH", "-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAlwAAAAdzc2gtcn\nNhAAAAAwEAAQAAAIEAsOFk9OUB8wg9fd+PDHyX8nEtTSPSZY+tjxq2da1Pf5FkIn+U1da6\nh2eqowF9lnyvlt7uEledTIWQZDGWToGYCZnRommSZEpo/vII+l1P28bJVHfgWFCqmxNfIB\nZFQ4KrOp9rXKidmrd8flhK/NTLJNqryrhhIiDs3CTyAliscIsAAAIQTuM2gU7jNoEAAAAH\nc3NoLXJzYQAAAIEAsOFk9OUB8wg9fd+PDHyX8nEtTSPSZY+tjxq2da1Pf5FkIn+U1da6h2\neqowF9lnyvlt7uEledTIWQZDGWToGYCZnRommSZEpo/vII+l1P28bJVHfgWFCqmxNfIBZF\nQ4KrOp9rXKidmrd8flhK/NTLJNqryrhhIiDs3CTyAliscIsAAAADAQABAAAAgDjcfGPtqq\n7CG2J3l7jf5MjfcTy3I0/a3GSApd82k7PivVoJwYLswJH+1XAJbqIN+zR4/fePitWqqjxL\nZJJgPstuXpBZuJDvGwMqfl7wHRL2Qx34sRG02hG5e3uIfMxe5lHcPba0qsVQt+vOhu9MUb\nsYF/mfuQJKt/Oi8nA1BbrBAAAAQFQPrap7AtYWEoCIY7gtpFMW51iDTAv5GN99DsKNuBby\nwQX2S0Wg/da75m/emJn/2IbmaKApvrx8LbenpyywfBkAAABBAN6xiYQ2j7eRjLV4h4Hbie\nVwlPYP4otKHdF5meObr+2ifYiMktdv/44V1XWKhgavjGFNWx2sHgj7byb51e/bi3MAAABB\nAMtVxa55G0wS9Yw1WK2F4JdYZ65ZAnUuo2rbA2dMDQxsOQxgel5Ox2XmC7e0GKrO9BJKPo\nR2fHEOdm9KOmoB8IkAAAAWY2hlbnppbG9uZ0BleGFtcGxlLmNvbQECAwQF\n-----END OPENSSH PRIVATE KEY-----\n"),
PublicKeySSH: util.SetEnvStr("PUBLIC_KEY_SSH", "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCw4WT05QHzCD19348MfJfycS1NI9Jlj62PGrZ1rU9/kWQif5TV1rqHZ6qjAX2WfK+W3u4SV51MhZBkMZZOgZgJmdGiaZJkSmj+8gj6XU/bxslUd+BYUKqbE18gFkVDgqs6n2tcqJ2at3x+WEr81Msk2qvKuGEiIOzcJPICWKxwiw== chenzilong@example.com\n"),
PrivateKeySSH: util.SetEnvStr("PRIVATE_KEY_SSH", ""),
//PublicKeySSH: util.SetEnvStr("PUBLIC_KEY_SSH", "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCw4WT05QHzCD19348MfJfycS1NI9Jlj62PGrZ1rU9/kWQif5TV1rqHZ6qjAX2WfK+W3u4SV51MhZBkMZZOgZgJmdGiaZJkSmj+8gj6XU/bxslUd+BYUKqbE18gFkVDgqs6n2tcqJ2at3x+WEr81Msk2qvKuGEiIOzcJPICWKxwiw== chenzilong@example.com\n"),
OrderDingTalkAccessToken: util.SetEnvStr("ORDER_DING_TALK_ACCESS_TOKEN", "203fe1644b446bba0a34e6e622c523d39ee9916fdad94b9c64224449f659e20b"),
OrderDingTalkSecret: util.SetEnvStr("ORDER_DING_TALK_SECRET", "SECa73d8372e336451c9daf29a99f750ee1bdd170c1dab910eab9cd06d729a831b7"),
SmsAccessKeyId: util.SetEnvStr("SMS_ACCESS_KEY", "LTAI4GBcVubRjzX7ABPcHnhB"), // 短信key
......@@ -161,19 +161,19 @@ func initAnsibleSSH() {
if err != nil {
fmt.Println(err.Error())
} else {
_, err := f.Write([]byte(conf.Options.PrivateKeySSH))
if err != nil {
fmt.Println(err.Error())
}
}
f2, err := os.Create("/root/.ssh/id_rsa.pub")
defer f2.Close()
if err != nil {
fmt.Println(err.Error())
} else {
_, err := f.Write([]byte(conf.Options.PublicKeySSH))
_, err = f.Write([]byte(conf.Options.PrivateKeySSH))
if err != nil {
fmt.Println(err.Error())
}
}
//f2, err := os.Create("/root/.ssh/id_rsa.pub")
//defer f2.Close()
//if err != nil {
// fmt.Println(err.Error())
//} else {
// _, err := f.Write([]byte(conf.Options.PublicKeySSH))
// if err != nil {
// fmt.Println(err.Error())
// }
//}
}
......@@ -455,7 +455,11 @@ func (h *HostManageSvc) ListStateHostManage(req request.StateHostManageReq) (err
for _, v := range hostManageList {
//修改状态
connStatus := StatusDetection(v.Ip)
connStatus, err1 := StatusDetection(v.Ip)
if err1 != nil {
session.Rollback()
return err1
}
hostManageListConn := entity.HostManageList{
ConnStatus: connStatus,
}
......@@ -545,7 +549,10 @@ func (h *HostManageSvc) SaveStateHostManage(hostManageList []request.HostManageL
id = uuid.New().String()
for k, v := range hostManageListCaches {
//调用状态检测函数
hostManageListCaches[k].ConnStatus = StatusDetection(v.Ip)
hostManageListCaches[k].ConnStatus, err = StatusDetection(v.Ip)
if err != nil {
return
}
hostManageListCaches[k].Id = id
}
......@@ -614,16 +621,25 @@ func (h *HostManageSvc) SaveIpExceptionList(req request.HostIpExceptionListReq)
}
// StatusDetection 状态检测
func StatusDetection(ip string) (ipConn int) {
func StatusDetection(ip string) (ipConn int, err error) {
var cmd *exec.Cmd
cmd = exec.Command("ansible", fmt.Sprintf("%s", AnsibleIp+ip), "-m", "ping")
output, err := cmd.Output()
if err != nil {
fmt.Println("ping:", string(output))
return 1
//执行cmd命令
if err = cmd.Start(); err != nil {
err = resp.CmdExecError.WithError(err)
return
}
if cmd.ProcessState.Success() {
return 0, nil
}
fmt.Println("ping:", string(output))
return 0
return 1, nil
//output, err := cmd.Output()
//if err != nil {
// fmt.Println("ping:", string(output))
// return 1
//}
//fmt.Println("ping:", string(output))
//return 0
}
// ExportIpStr 结果导出
......@@ -780,7 +796,10 @@ func CronStatusDetection() {
// }
//}
for _, v := range hostManageList {
connStatus := StatusDetection(v.Ip)
connStatus, err1 := StatusDetection(v.Ip)
if err1 != nil {
fmt.Println("CronStatusDetection err:", err1.Error())
}
//修改状态
_, err = db.Table("host_manage_list").Where("is_delete = 0 AND id = ?", v.Id).
Cols("conn_status").Update(&entity.HostManageList{
......@@ -788,7 +807,6 @@ func CronStatusDetection() {
})
if err != nil {
fmt.Println("CronStatusDetection err:", err.Error())
return
}
}
fmt.Println("CronPersonalCardDate success!")
......
......@@ -237,7 +237,6 @@ func (t *TaskManageSvc) ExecScript(req request.ExecScriptReq, script string) (id
}
//写入主机信息
//hostsIp := strings.Replace(strings.Trim(fmt.Sprint(hosts), "[]"), " ", " ", -1)
hostsGroup, err := os.Create("/etc/ansible/hosts_" + fmt.Sprintf("%d", req.TaskId))
if err != nil {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment