george518 / PPGo_Job

PPGo_Job是一款可视化的、多人多权限的、一任务多机执行的定时任务管理系统,采用golang开发,安装方便,资源消耗少,支持大并发,可同时管理多台服务器上的定时任务。
Apache License 2.0
1.5k stars 396 forks source link

权限管理、任务调度、批量任务处理、docker环境问题 #7

Closed lantian316 closed 6 years ago

lantian316 commented 6 years ago

首先感谢你写的这个系统,非常好用,简洁。 就目前的系统,简单说一下个人的见解以及建议,以下描述可能违背涉及此系统的初衷(初衷只是想做个定时任务调度系统),描述可能有运维平台方面的要求了(比如4点的第二小点),可酌情考虑。再次感谢此系统给我带来的便利。 1、激活的任务目前只能通过复制按钮来查看此任务具体是什么任务,具体执行了什么脚本,多长时间执 行一次,是否可以增加查看按钮(只做查看功能),或者在日志页面上面的部分增加相应的信息,将信息 丰富一点(目前执行执行脚本或者命令) 2、用户权限管理(特定的人只能修改特定的具有权限的任务)和服务器分组问题(目前不支持分组),服务器 应该允许有至少两个ip(内网ip和外网ip),另外服务器应该也提供快速复制新增功能。 3、之前有人提脚本参数设定功能(这个应该是界面要求,将参数分离出来编辑,我理解的是这样,实际执行应该指定脚本路径,后面直接接参数我测试过是没有问题的,正常执行) 4、另外现在很多环境都在docker里面,比如php环境,宿主机是没有php环境的,是否有比较合理的方式可以进行处理?即当任务需要在容器里面执行的时候如何处理比较合适,我暂时想到两点: ①宿主机免秘钥,然后执行定时任务的时候写 docker exec -it CONTAINER_NAME TIMER_COMMAND ②直接在容器里开ssh服务,直接将容器添加到资源服务器 5、后期是否会考虑任务调度功能的添加? ①比如有3台服务均可执行此任务(但不是多台都要执行,实际只需要有一台执行即可,而且必须 只有一台执行),是否能判断当前3台服务器的负载,选一台比较空闲的机器去执行即可。考虑到第4 点docker的情况,是否可以分配某台机器的某个容器去执行。 ②另外一种情况,安装类或者服务器初始化之类的,是否可以添加多台服务器,都执行一个脚本去初 始化服务器,比如说安装nginx?或者说拉去一个php镜像,当然此种情况用脚本ansible处理也比较 简单,此种任务就需要所有机器全部执行。这个要求好像提在这里不太合适。 6、是否考虑危险命令检测机制?当涉及到rm -rf /*(一个例子,还有很多危险命令)之类的命令的时候直接提示编辑不成功,无法保存,或者是否有更好的办法来避免危险命令带来的灾难,当为脚本的时候应该也要扫描一下脚本是否存在此类危险

george518 commented 6 years ago

首先非常感谢您的建议。很高兴能够帮到您。

1、目前权限管理是需要迫切解决的问题,目前还没完成,另外,第二点的其他建议也挺好,计划在下一个版本中体现。 2、第1、3、6 建议非常好,功能不算复杂,列入下下一个版本的计划中:) 3、docker支持,我还没考虑好怎么做(毕竟运维知识有限),所以,4、5暂时还没有升级时间表,不过,未来需要做这方面的升级,当然欢迎一起参与进来。

lantian316 commented 6 years ago

您好: 感谢您对意见的认真阅读和采纳,系统确实非常好用,我个人更看重的是功能,所以前端界面我是不怎么感兴趣的,简洁清爽就好; 我是运维职位,对开发不太懂,关于第6点危险命令的问题,可以弄个列表,默认数据就自带一些常用的,另外可以让用户自己添加,再次感谢。 个人整理了下常见危险命令: 当然您可以去自己的技术区圈去收集部分 mkfs.ext3 /dev/sda dd if=/dev/random of=/dev/sda rm -rf

/dev/sda(硬盘) mv FILENAME(DIRNAME) /dev/null wget http://www.xxx.com/xxx.sh -O- | sh (危险脚本的直接执行)

2018-06-03

lantian316

发件人:George Hao notifications@github.com 发送时间:2018-06-02 12:19 主题:Re: [george518/PPGo_Job] 权限管理、任务调度、批量任务处理、docker环境问题 (#7) 收件人:"george518/PPGo_Job"PPGo_Job@noreply.github.com 抄送:"lantian316"lantian316@163.com,"Author"author@noreply.github.com

首先非常感谢您的建议。很高兴能够帮到您。 1、目前权限管理是需要迫切解决的问题,目前还没完成,另外,第二点的其他建议也挺好,计划在下一个版本中体现。 2、第1、3、6 建议非常好,功能不算复杂,列入下下一个版本的计划中:) 3、docker支持,我还没考虑好怎么做(毕竟运维知识有限),所以,4、5暂时还没有升级时间表,不过,未来需要做这方面的升级,当然欢迎一起参与进来。 — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

lantian316 commented 6 years ago

哈哈,感谢您的辛苦付出,我要的功能都来了,目前测了两天,没什么大问题,准备推生产了。 说下几个小问题,如果有时间可以稍微改下,3/4点我觉得还是比较重要的,请酌情考虑。 1.界面操作之后感觉有点卡顿,没那么顺滑 2.主窗体卡片模式不会自动刷新,每次都需要手动点击右上角的刷新按钮 3.禁止命令的问题,先添加任务,后修改或新增 禁止命令之后,之前添加的任务还是会被执行,是否可以改为每次命令执行的时候去检测一遍数据库里面禁止命令的列表? 4.当超级管理员去编辑修改定时任务详情的时候,是否可以跳过审核步骤?

george518 commented 6 years ago

刚刚更新了一版,主要有: 1、弹出框和成功提示框的等待时间由原来3秒时间改为1秒(部分信息提示框除外),可以提高界面的流畅度。 2、编辑任务,返回任务详情页,可以自动刷新页面,其余操作完毕后会自动刷新页面。 3、超级管理员修改和新增定时任务,可以跳过审核步骤。 4、调整部分列表页的列宽,适配小屏幕。 5、新增logo和Ico

关于禁止命令问题,因为考虑到禁止命令的检测作用不是太大,主要还是依靠审核的机制来控制命令的合法性。毕竟有时候在任务的命令中无法通过代码获知命令的具体目的,比如:执行一些shell脚本或者cli方式执行php脚本的情况下。因此这个版本未做更新

多谢支持