-
Notifications
You must be signed in to change notification settings - Fork 27
Install
- 编译前端项目
# 克隆仓库
git clone https://github.com/jiawesoft/jiascheduler-ui.git
# 安装依赖
cd jiascheduler-ui
pnpm install
# 编译项目
pnpm build
# 编译完成后,将dist目录下的文件复制到jiascheduler的dist目录下
cp -r dist/* jiascheduler/dist/
- 编译 jiascheduler
# 编译
cargo build -r --target x86_64-unknown-linux-musl
# 查看编译后的执行文件
ls target/x86_64-unknown-linux-musl/release
jiascheduler的控制台服务,打包了前端页面,可以直接运行,依赖redis,mysql,运行前需要提前准备好中间件。
jiascheduler-console需要使用redis的stream功能提供消息队列服务,mysql的json数据类型提供高级的查询服务所以请至少保证
- redis 版本 >= 5.0.0
- mysql 版本 >= v8.0.0
- mariadb 版本 >= v10.2.7
参数介绍
A high-performance, scalable, dynamically configured job scheduler developed with rust
Usage: jiascheduler-console [OPTIONS]
Options:
-d, --debug if enable debug mode
--bind-addr <BIND_ADDR> http server listen address, eg: "0.0.0.0:9090"
--config <FILE> where to read config file, you can temporarily overwrite the configuration file using command-line parameters [default: ~/.jiascheduler/console.toml]
--redis-url <REDIS_URL> redis connect address, eg: "redis://:wang@127.0.0.1"
--database-url <DATABASE_URL> mysql connect address, eg: "mysql://root:root@localhost:3306/jiascheduler"
-h, --help Print help
-V, --version Print version
安装
请注意 "--redis-url" 和 "--database-url" 仅用于调试,首次安装时仅需提供"--bind-addr"参数
# 首次安装需要指定--bind-addr,服务启动后访问0.0.0.0:9090,进入安装界面,按提示完成安装
./jiascheduler-console --bind-addr 0.0.0.0:9090
执行成功后,访问 localhost:9090 进入安装界面,在控制台安装页面,填写数据库和redis的连接信息,以及填写comet secret,安装完毕后会默认生成~/.jiascheduler/console.toml配置文件,如果你手动修改了配置文件,需要重启服务。
redis在安装页面仅作参数校验,如果你的redis账号密码填写错误,需要查看日志定位问题。comet secret是控制台,comet,agent之间通信的密钥,请妥善保管。在启动comet和agent时,需要指定相同的comet secret,否者无法通信。
注意:此时comet和agent未安装,仅能访问控制台,并不能进行任务调度
jiascheduler的连接层,Agent启动后会和Comet建立长连接,控制台下发指令给Comet,Comet将指令转发给对应的Agent,Agent执行具体的作业。启动时需要传入secret,整个通信过程采用secret认证,防止非法连接。
jiascheduler-comet使用redis的stream功能提供消息队列服务,Agent通过长连接给Comet上报的事件消息会通过stream传递,由控制台订阅消费。所以服务启动时需要传入redis的连接地址。
** 参数介绍 **
Usage: jiascheduler-comet [OPTIONS]
Options:
-d, --debug if enable debug mode
-b, --bind <BIND> [default: 0.0.0.0:3000]
-r <REDIS_URL> [default: redis://:wang@127.0.0.1]
--secret <SECRET> [default: rYzBYE+cXbtdMg==]
-h, --help Print help
-V, --version Print version
# 设置comet监听地址,注意如果console安装时未采用默认值的话,这里需要传入--secret,-r指定redis连接地址
./jiascheduler-comet --bind 0.0.0.0:3000 --secret rYzBYE+cXbtdMg== -r redis://:wang@127.0.0.1
jiascheduler的执行层,负责执行具体的作业,建立ssh加密通道,执行作业。启动时需要传入secret,整个通信过程采用secret认证,防止非法连接。
启动时需要传--comet-addr参数,指定comet的地址,--comet-secret指定comet的密钥,否则无法通信。
Usage: jiascheduler-agent [OPTIONS]
Options:
-d, --debug
If enable debug mode
-b, --bind <BIND>
[default: 0.0.0.0:3001]
--comet-addr <COMET_ADDR>
[default: ws://127.0.0.1:3000]
--output-dir <OUTPUT_DIR>
Directory for saving job execution logs [default: ./log]
--comet-secret <COMET_SECRET>
[default: rYzBYE+cXbtdMg==]
-n, --namespace <NAMESPACE>
[default: default]
--ssh-user <SSH_USER>
Set the login user of the instance for SSH remote connection
--ssh-password <SSH_PASSWORD>
Set the login user's password of the instance for SSH remote connection
--ssh-port <SSH_PORT>
Set the port of this instance for SSH remote connection
--assign-username <ASSIGN_USERNAME>
Assign this instance to a user and specify their username
--assign-password <ASSIGN_PASSWORD>
Assign this instance to a user and specify their password
-h, --help
Print help
-V, --version
Print version
重要参数介绍
- --comet-addr 指定comet的地址,默认采用websocket协议,所以这里需要传入ws格式的地址
- --comet-secret 指定comet的密钥,如果填写错误则无法通信。总结,我们在console安装时配置了secret,comet启动时传入secret,agent启动时也需要传入相同的secret。
- --namespace 指定命名空间,默认是default,由于支持内网穿透,可能存在ip相同的情况,所以需要指定不同的namespace区分。
- --ssh-user 指定ssh登录的用户名用于从控制台进行webssh连接登录,可忽略,后续可在控制台配置。
- --ssh-password 指定ssh登录的密码,可忽略。
- --assign-username 指定该实例所属的控制台用户,可忽略,后续可在控制台配置。
- --assign-password 该实例所属的控制台用户的密码,可忽略。
created by iwannay