diff --git a/src/bean/vo/request/task_manage.go b/src/bean/vo/request/task_manage.go index b030dde441b69c5d892723e29d29de0cd6e4b33a..09726ed1defdc7ec1d6c11d48ad91922a7b97371 100644 --- a/src/bean/vo/request/task_manage.go +++ b/src/bean/vo/request/task_manage.go @@ -36,5 +36,6 @@ type ExecScriptReq struct { HostGroupId int `form:"host_group_id" vd:"$>0;msg:'请输入主机分组id'"` //主机分组id Type int `form:"type"` //脚本额外变量类型1yaml 2json Value string `form:"value"` //脚本额外变量值 - Script string `form:"script"` //执行脚本 + ExecType int `form:"exec_type" binding:"oneof=1 2"` //执行类型:1文本执行 2文件执行 + Script string `form:"script"` //执行脚本/文件名 } diff --git a/src/controller/task_manage.go b/src/controller/task_manage.go index 39036024025a0b36bcebece9f91995a241a27014..01b13e50c9d926c53bb64c9111d7021fb6ccc576 100644 --- a/src/controller/task_manage.go +++ b/src/controller/task_manage.go @@ -123,6 +123,10 @@ func ExecScript(c *gin.Context) { SendJsonResponse(c, resp.InvalidParam.WithError(err), nil) return } + + if req.Type == 2 { + //从minio读取yaml文件 + } taskManageSvc := service.TaskManageSvc{} data, err := taskManageSvc.ExecScript(req) if err != nil { diff --git a/src/service/host_manage.go b/src/service/host_manage.go index 8370674c832a7635ade9f0c9d1a1cac2a3f6bfb9..046512f291d0111f55b23775040fac05edabb236 100644 --- a/src/service/host_manage.go +++ b/src/service/host_manage.go @@ -416,12 +416,24 @@ func (h *HostManageSvc) SaveStateHostManage(hostManageList []request.HostManageL } //往hosts文件中写入主机组ip - f, err := os.Open("/etc/ansible/hosts") + //f, err := os.Open("/etc/ansible/hosts") + //if err != nil { + // err = resp.FileExecError.WithError(err) + // return + //} + //defer f.Close() + + f, err := os.OpenFile("/etc/ansible/hosts", os.O_APPEND|os.O_CREATE|os.O_RDWR, 0777) if err != nil { err = resp.FileExecError.WithError(err) return } defer f.Close() + //_, err = f.Write([]byte(fmt.Sprintf("%s%d\n", AnsibleGroup, req.Id))) + //if err != nil { + // err = resp.FileExecError.WithError(err) + // return + //} for _, v := range hostManageList { _, err = f.Write([]byte(fmt.Sprintf("%s ansible_ssh_host=%s ansible_ssh_port=%s ansible_ssh_user=\"%s\" ansible_ssh_pass=\"%s\"\n", v.Ip, v.Ip, v.Port, v.UserName, v.Password))) if err != nil { @@ -432,10 +444,6 @@ func (h *HostManageSvc) SaveStateHostManage(hostManageList []request.HostManageL //状态检测 id = uuid.New().String() - if err != nil { - err = resp.FAIL.WithError(err) - return - } for k, v := range HostManageListCaches { //调用状态检测函数 HostManageListCaches[k].ConnStatus = StatusDetection(v.Ip)