rundeck是用来做什么的?

按照习惯,我们通常使用crontab来运行一些定时任务,但是有这样的问题:

  1. 无法知道有多少线上任务-->(脚本管理问题)

  2. 无法知道任务具体部署在哪-->(目录管理问题

  3. 无法知道执行状态-->(状态问题

  4. 无法知道任务执行的输出结果-->(状态问题

上边的这种情况我们经常遇到,还有其他的一些问题:

  • 运维工具没有固化

  • 运维程序无法区分线上程序及测试程序(一些随意的改动造成线上脚本功能不完整,而且可能造成一些误操作)-->(权限问题

  • 任务启动、执行成功/失败时候 发送通知-->(状态问题

  • 并发服务器操作-->(操作繁琐问题


上边大概为我们现在遇到的部分问题,大致为三类:目录、权限、执行状态 三个大类,

所以我们急需一个相关的管理工具来解决上述问题。

rundeck相关:

  • WEB操作界面

  • 任务分组(目录及脚本管理)

  • 每个组都有一个操作用户(操作机上的用户,可以管理好权限问题)

  • 有并发执行脚本能力

  • 可以返回执行结果并呈现及结果通知


它的界面如上所示,所以我们前提是需要定义规范它的第一层目录,这里结合2张图来说明



整体规划(参考上图)

  • 目录分类用产品分类

  • 每个目录下只有一个用户

具体操作(目录+用户)

  1. 目录第一层(①)按照产品分类,如上图(ccms、渠道);另外监控相关的用1个监控相关目录来区别监控类操作

  2. 第二层(②)为相关任务的子目录;pS:如果操作类会出现杀一个进程连带会杀掉别的进程的情况(如ccms操作(admin用户)中重启resin+ccmsother操作中重启tomcat会出现连带杀掉进程的情况),就需要创建ccms-other操作(tom用户)目录,将出现相克的2种情况分开放置,从而避免类似情况。