irpas技术客

阿里云及Ubuntu系统下直接部署Crawlab_Powehi777_crawlab直接部署

irpas 1588

下载 Crawlab 镜像

执行命令将 Crawlab 的镜像下载下来。镜像大小大概在几百MB,因此下载需要几分钟时间。

docker pull tikazyq/crawlab:latest 安装 Docker-Compose

安装 docker-compose ,在安装了 pip 的情况下 (Python 3),执行以下命令。

pip install docker-compose

为了方便起见,我们用 docker-compose 的方式来部署。docker-compose 是一个集群管理方式,可以利用名为 docker-compose.yml 的 yaml 文件来定义需要启动的容器,可以是单个,也可以(通常)是多个的。

安装并启动 Crawlab

在你的网站站点根目录下新建 docker-compose.yml,并填入以下内容:

version: '3.3' services: master: image: tikazyq/crawlab:latest container_name: master environment: # CRAWLAB_API_ADDRESS: "https://<your_api_ip>:<your_api_port>" # backend API address 后端 API 地址. 适用于 https 或者源码部署 CRAWLAB_SERVER_MASTER: "Y" # whether to be master node 是否为主节点,主节点为 Y,工作节点为 N CRAWLAB_MONGO_HOST: "mongo" # MongoDB host address MongoDB 的地址,在 docker compose 网络中,直接引用服务名称 # CRAWLAB_MONGO_PORT: "27017" # MongoDB port MongoDB 的端口 # CRAWLAB_MONGO_DB: "crawlab_test" # MongoDB database MongoDB 的数据库 # CRAWLAB_MONGO_USERNAME: "username" # MongoDB username MongoDB 的用户名 # CRAWLAB_MONGO_PASSWORD: "password" # MongoDB password MongoDB 的密码 # CRAWLAB_MONGO_AUTHSOURCE: "admin" # MongoDB auth source MongoDB 的验证源 CRAWLAB_REDIS_ADDRESS: "redis" # Redis host address Redis 的地址,在 docker compose 网络中,直接引用服务名称 # CRAWLAB_REDIS_PORT: "6379" # Redis port Redis 的端口 # CRAWLAB_REDIS_DATABASE: "1" # Redis database Redis 的数据库 # CRAWLAB_REDIS_PASSWORD: "password" # Redis password Redis 的密码 # CRAWLAB_LOG_LEVEL: "info" # log level 日志级别. 默认为 info # CRAWLAB_LOG_ISDELETEPERIODICALLY: "N" # whether to periodically delete log files 是否周期性删除日志文件. 默认不删除 # CRAWLAB_LOG_DELETEFREQUENCY: "@hourly" # frequency of deleting log files 删除日志文件的频率. 默认为每小时 # CRAWLAB_SERVER_REGISTER_TYPE: "mac" # node register type 节点注册方式. 默认为 mac 地址,也可设置为 ip(防止 mac 地址冲突) # CRAWLAB_SERVER_REGISTER_IP: "127.0.0.1" # node register ip 节点注册IP. 节点唯一识别号,只有当 CRAWLAB_SERVER_REGISTER_TYPE 为 "ip" 时才生效 # CRAWLAB_TASK_WORKERS: 8 # number of task executors 任务执行器个数(并行执行任务数) # CRAWLAB_RPC_WORKERS: 16 # number of RPC workers RPC 工作协程个数 # CRAWLAB_SERVER_LANG_NODE: "Y" # whether to pre-install Node.js 预安装 Node.js 语言环境 # CRAWLAB_SERVER_LANG_JAVA: "Y" # whether to pre-install Java 预安装 Java 语言环境 # CRAWLAB_SETTING_ALLOWREGISTER: "N" # whether to allow user registration 是否允许用户注册 # CRAWLAB_SETTING_ENABLETUTORIAL: "N" # whether to enable tutorial 是否启用教程 # CRAWLAB_NOTIFICATION_MAIL_SERVER: smtp.exmaple.com # STMP server address STMP 服务器地址 # CRAWLAB_NOTIFICATION_MAIL_PORT: 465 # STMP server port STMP 服务器端口 # CRAWLAB_NOTIFICATION_MAIL_SENDEREMAIL: admin@exmaple.com # sender email 发送者邮箱 # CRAWLAB_NOTIFICATION_MAIL_SENDERIDENTITY: admin@exmaple.com # sender ID 发送者 ID # CRAWLAB_NOTIFICATION_MAIL_SMTP_USER: username # SMTP username SMTP 用户名 # CRAWLAB_NOTIFICATION_MAIL_SMTP_PASSWORD: password # SMTP password SMTP 密码 ports: - "8080:8080" # frontend port mapping 前端端口映射 depends_on: - mongo - redis # volumes: # - "/var/crawlab/log:/var/logs/crawlab" # log persistent 日志持久化 worker: image: tikazyq/crawlab:latest container_name: worker environment: CRAWLAB_SERVER_MASTER: "N" CRAWLAB_MONGO_HOST: "mongo" CRAWLAB_REDIS_ADDRESS: "redis" depends_on: - mongo - redis # environment: # MONGO_INITDB_ROOT_USERNAME: username # MONGO_INITDB_ROOT_PASSWORD: password # volumes: # - "/var/crawlab/log:/var/logs/crawlab" # log persistent 日志持久化 mongo: image: mongo:latest restart: always # volumes: # - "/opt/crawlab/mongo/data/db:/data/db" # make data persistent 持久化 # ports: # - "27017:27017" # expose port to host machine 暴露接口到宿主机 redis: image: redis:latest restart: always # command: redis-server --requirepass "password" # set redis password 设置 Redis 密码 # volumes: # - "/opt/crawlab/redis/data:/data" # make data persistent 持久化 # ports: # - "6379:6379" # expose port to host machine 暴露接口到宿主机 # splash: # use Splash to run spiders on dynamic pages # image: scrapinghub/splash # container_name: splash # ports: # - "8050:8050"

如果你已经安装了 Redis 和 MongoDB,想要将数据写入自己本地的Redis 和 MongoDB,你需要:

将 host 替换为你的主机 IP 地址,如:127.0.0.1;将 password 替换为你的 Redis 密码

CRAWLAB_SERVER_REGISTER_TYPE 和 CRAWLAB_SERVER_REGISTER_IP 两个参数可以不用修改,使用默认值也行

除了 mongo 和 redis 下边的 ports 参数不要取消注释外,其他都可以根据自己的需求调整

注意事项

配置完 docker-compose.yml 后,可以运行 docker-compose ps 来测试是否安装正常。正常的应该是显示如下内容:

如果输入 docker-compose ps报错,需要执行以下命令:

sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

安装完成之后再运行docker-compose up安装

Name Command State Ports ------------------------------

这是没有 Docker 容器在运行的情况,也就是空列表。如果有容器在运行,可以看到其对应的信息。

安装完 docker-compose 和定义好 docker-compose.yml 后,只需要运行以下命令就可以启动 Crawlab。

docker-compose up -d

启动 Crawlab 后,在浏览器中输入 http://localhost:8080 就可以看到界面。 停止容器:docker-compose stop

更新 / 重启 Crawlab

如果您需要更新最新的版本的镜像,只需要执行以下代码。

# 关闭并删除 Docker 容器 docker-compose down # 拉取最新镜像 docker pull tikazyq/crawlab:latest # 启动 Docker 容器 docker-compose up -d

当 Crawlab 有更新时,我们会将新的变更构建更新到新的镜像中。最新的镜像名称都是 tikazyq/crawlab:latest。而一个指定版本号的镜像名称为 tikazyq/crawlab:<version>,例如 tikazyq/crawlab:0.4.7 为 v0.4.7 版本对应的镜像。

配置服务器远程访问crawlab管理系统

使用阿里云服务器,你永远要记住还有安全组这么个东西。想要开放8080端口,需要配置安全组。

1、进入ECS云服务器控制台 2、先找到需要操作的目标实例,点击“更多”–“网络和安全组”–“安全组配置” 如下图所示:

3、点击“配置规则” 4、点击“添加安全组规则”,添加8080号端口,如下图:

端口范围填:8080/8080 授权对象填:0.0.0.0/0

至此,安全组开放8080号端口教程完毕,也可以参考阿里云配置安全组的官方文档

标题使用域名访问站点 温馨提示:

为了安全在登录 Crawlab 后台后记得修改原始登录密码,用户名可以在 MongoDB 数据库中的 users 集合里修改。

Bug 提示:

如果在 MongoDB 数据库修改了用户名,那么数据库里过一会儿会自动重新生成最原始的账户和密码 (用户:admin;密码:admin),记得把这个自动生成的内容删除!


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #crawlab直接部署 #下载 #crawlab #镜像执行命令将 #的镜像下载下来 #Docker