Enhancer 应用部署工具 edtool

本工具可以将发布过的项目从平台部署到目标机器, 方便开发者做持续集成。只需在目标机器上安装配置一次,后续部署一条指令即可完成。

0. 依赖的环境

下面的命令假定你已经按照教程在服务器上安装好了 node, redis 和 数据库

1. 安装 edtool

npm install edtool -g   --registry=https://registry.npmmirror.com

2. 使用方式

2.0 使用前的说明

如果开发环境的数据库等配置和部署环境不一样, 可以通过下面的命令来设置部署环境的配置

  1. 数据库配置

     edtool config 项目ID db host user password databaseName connectionName
    
     // 比如项目ID是123, 且部署环境的数据库的host要配置成 127.0.0.1, 数据库名是 test
     edtool config 123 db 127.0.0.1 / / test /
    
     // 不需要修改的 就用 / 代替
     // 如果有多个数据库连接需要配置, 可以像下面这样配置另外一个连接
     edtool config 123 db host1 user1 passsword1 databaseName1 connectionName1
    
  2. 系统配置

     edtool config 项目ID system port externalUrlBase
    
     // 比如项目ID是123, 线上部署环境的端口是 5301 且 外部访问地址是 http://www.xx.com
     edtool config 123 system 5301 http://www.xx.com
    
  3. redis配置

     edtool config 项目ID redis host port user pass
    
     // 比如项目ID是123, 线上部署环境的redis端口是 6379 
     edtool config 123 redis / 6379 / /
    

2.1 登录(第一次使用时需要先使用无远账号登录)

edtool login

2.2 部署项目

下面的部署方式任选一种, 项目ID 和 发布编号 可以在 我的项目 的 详情信息 和 发布管理 里找到

  1. 部署项目ID为 123 且发布编号为最近一次发布的项目

     edtool 123
    
  2. 部署项目ID为 123 且发布编号为 456的项目

     edtool 123 456
    
  3. 本地工作台部署项目ID为 123 的最近一次发布过的项目,其中参数 --repository 用来指定本地工作台所在的IP和端口地址。 (!注意本地工作台版本需在 1.2.0 以上)

     edtool 123 --repository=192.168.47.22:5300
    
  4. 部署已经下载好的 bodhi 包

     // 将命令行终端切换到  bodhi 包所在目录
     edtool ./bodhi-app-xxx.tar.gz
    
  5. 部署时指定文件夹名称

    edtool 123 --name=文件夹名
    // 如果不指定 --name 那么 每次发布后都会部署到不同 (app-bodhi-发布编号) 的文件夹下
    

2.3 安装服务(仅 windows 用户可用, linux 不需要)

下面的命令需要在项目根目录下执行

  1. 安装服务(安装后会默认启动项目)

     edtool service install
    
  2. 卸载服务

     edtool service uninstall
    
  3. 启动服务

     edtool service start
    
  4. 停止服务

     edtool service stop
    

其他说明

  • 项目会被部署到当前命令运行的目录下。
  • 用户目录/wuyuan/项目ID/ 目录会被 edtool 用作部署对应项目的工作目录,一般情况不要自主修改。
  • 其他参数说明:
    • -b 表示备份 bodhi 包。备份地址为 用户目录/wuyuan/backup/项目ID/bodhi-app-xxx.tar.gz。
    • -s 表示只下载 bodhi 包 不部署。
    • -i 表示部署时不执行 npm install。
    • -h 列出 edtool 支持的命令。


results matching ""

    No results matching ""