0 安装和配置
Doflatango edited this page 2018-03-13 15:43:58 +08:00
This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

下载

  1. https://github.com/shunfei/cronsun/releases 下载对应平台的压缩包;
  2. 解压之后,将会得到 3 个二进制可执行文件,以及一份配置文件:
  • csctl:一个命令行的管理工具,目前提供数据备份还原,和数据升级的功能;
  • cronweb: 这个带有一个 web 控制面板的管理节点,仅用来管理数据,和发一些通知;
  • cronnode:这个负责执行任务的节点,每一台(需要跑任务的)机器上面需要部署一个 cronnode 节点;

部署

  1. 在部署之前建议先查看下面配置文件说明;
  2. 部署好依赖 MongoDBEtcd
  3. 通常情况下,cronnode 应该在每一台有需要的机器部署一个进程,cronweb 只需要在任意一台机器上部署一个进程即可;
  4. 把配置拷贝到每个节点上面,避免配置不一致的情况;
  5. 启动;

配置文件说明

所有的配置文件都在 conf 目录中:

  • base.json:配置文件的入口;
  • web.json:只有 cronweb 用到的配置;
  • db.jsonMongoDB 连接配置;
  • etcd.jsonEtcd 连接配置;
  • mail.json:邮箱服务器和告警接口配置;
  • security.json:任务安全配置,通过设立白名单来限制任务脚本的后缀和执行用户;

部分配置项说明

base.json

  • UUIDFilecronnode 节点在首次启动时会生成一个 UUIDUUID 作为节点的唯一标识,是不可改变的,新的 UUID 意味着一个新的节点),会保存到此配置项指定的路径,默认是 /etc/cronsun/CRONSUN_UUID,因此需要一些权限,如果你想保存到其它地方,请修改此配置项,如果想迁移节点,请把这个 UUID 文件一并迁移到新的地方。

web.sjon

  • BindAddrweb 管理面板服务绑定的地址和接口;
  • Auth:设置 Enabledtrun,访问管理面板将要求登录认证,首次使用时默认的用户名和密码是:admin@admin.com/admin
  • LogCleaner:日志清理器,大量任务频繁的执行将会产生很多的日志,大部分日志并不需要长时间的保存,设置一个大于 0 的数值给 EveryMinutecronweb将启动一个日志清理器每个 EveryMinute 分钟清理一次日志。ExpirationDays 指定了日志可以保存多久(单位是天);

db.json

  • 如果你的 MongoDB 启用了登录认证,在配置里添加上 UserNamePassword 并填上用户密码即可;

mail.json

  • Enable:设置为 false,不开启任务告警,其它配置可忽略不填。设置 true,开启报警;
  • HttpAPI:当这里不为空的时候,所有的告警信息都会发到指定的 HTTP 接口,不会再往邮箱发送,二选一。但是,下面的 To 收件人对 HttpAPI 仍然有效,发送的告警消息格式如下:
{
  "To": [String, ...],
  "Subject": String,
  "Body": String
}
  • To:全局告警接收人邮箱,所有的任务(失败)告警,以及 cronnode 节点挂了,都会发送到这里的邮箱;
  • SSL:有些服务器默认是强制加密通讯的,不需要设置此项为 true

security.json

  • open:设置为 true 开启安全选项;
  • users:执行用户白名单,只有在白名单中的系统用户,任务才有被执行的可能,可以避免用 root 来执行任务;
  • ext:脚本后缀白名单,只有在白名单中的后缀,任务才有被执行的可能;