Skip to content

安装和配置

Doflatango edited this page Mar 13, 2018 · 1 revision

下载

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

web.sjon

  • BindAddr:web 管理面板服务绑定的地址和接口;
  • 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:脚本后缀白名单,只有在白名单中的后缀,任务才有被执行的可能;