openEuler 搭建 SeaTable 小记(2)Runner & FAAS
这是openEuler 搭建 SeaTable 小记(1)的第二篇,主要介绍如何部署 SeaTable Python 运行器。
架构
SeaTable 的 Python 脚本运行环境包括 Python Runner 和 SeaTable FAAS Scheduler。
FAAS 是调度器,主要负责调度 SeaTable 运行脚本请求、安排定时任务和保存/统计脚本运行结果等。相当于一个 master 节点。
Python Runner 是脚本的执行者,Python Runner 在收到一个脚本运行请求后,会下载脚本内容并启动一个 docker 容器来运行这个脚本。脚本运行结束后,容器自动销毁,以此保证安全性。相当于是一个 worker 节点。
Python Runner 可以和 SeaTable FAAS Scheduler 部署到一台机器上。
准备
我准备了一台最小化安装的 OpenEuler 操作系统虚拟机,并安装了 Docker,DockerCompose 以及 Python3(因为 SeaTable Python Runner 依赖 Python3)。
部署 Python Runner
准备软件包和初始化服务
下载 seatable-python-runner 软件包,并解压到 /opt/seatable-python-runner,安装相关依赖,并初始化服务。
1 | unzip seatable-python-runner-1.x.x.zip -d /opt && cd /opt/seatable-python-runner |
配置 Python Runner
编辑配置文件。
1 | vim conf/seatable_python_runner_settings.py |
添加 seatable-faas-scheduler 的服务地址。
1 | # seatable-faas-scheduler 的 URL, 如果使用 IP 地址的话,应为 http(s)://IP:PORT,即表示 seatable-faas-scheduler 的服务地址 |
启停服务
1 | 此时需要启动服务 |
部署 FAAS Scheduler
部署目录位置 /opt/seatable-faas-scheduler,若没有该目录,需要创建目录。
拉取 SeaTable FAAS Scheduler 镜像。
1 | docker pull seatable/seatable-faas-scheduler:latest |
下载和修改docker-compose.yml文件。
- MySQL 的 root 的密码(MYSQL_ROOT_PASSWORD 和 DB_ROOT_PASSWD)
- MySQL 数据的卷目录 (volume)
- SeaTable FAAS Scheduler 数据的卷目录(volume)
- 主机名(SEATABLE_FAAS_SCHEDULER_SERVER_HOSTNAME),域名或者你的服务器的外部 IP
- 时区
拉起容器docker-compose up
初始化 SeaTable FAAS Scheduler 数据库。
当日志输出 This is a idle script (infinite loop) to keep container running 时,数据库已初始化成功。Ctrl+C 退出。
修改配置文件,vim /SeaTable FAAS Scheduler 数据卷目录/seatable-faas-scheduler/conf/seatable_faas_scheduler_settings.py。
1 | # SeaTable 域名 |
修改 SeaTable 配置文件
1 | vim /SeaTable 数据卷目录/seatable/conf/dtable_web_settings.py |
重启服务
启动 SeaTable FAAS Scheduler 服务器
1 | 在Runner服务器上执行 |
重启 SeaTable 服务
1 | 在SeaTable服务器上执行 |
验证
在 SeaTable 上创建一个 Python 脚本,应能够正常执行。
常见问题
- 日志位置:
- Runner 日志:/opt/seatable-python-runner/logs
- Scheduler 日志:seatable-faas-scheduler/logs
- Scheduler 的 Nginx 日志:nginx-logs