部署安装

备注

部署就是三步走,一步准备工作,一步安装依赖,一步配置运行。


一、开始准备

1. 安装软件

1.1 CentOS yum install -y gcc gcc-c++ python-devel libffi-devel openssl-devel mysql-devel

1.2 Ubuntu apt-get install build-essential libmysqld-dev libssl-dev python-dev libffi-dev

2.下载代码

2.1 开发版本 git clone https://github.com/staugur/IncetOps && cd IncetOps

2.2 稳定版本 暂无

3. Python模块

3.1 开发所用python版本为2.7.x,其他版本未测试!

3.2 使用pip安装模块,执行pip install -r requirements.txt即可。

二、安装依赖

1.MySQL

1.1 使用版本5.5、5.6+均可。

1.2 CentOS系列可以使用这个脚本,社区5.6版,执行命令curl -fsSL https://static.saintic.com/download/scripts/yum_install_mysql56.sh | sh -直接安装!

1.3 启动mysql服务,导入sql

2.Redis

2.1 使用版本目前看没要求。

2.2 CentOS系列执行命令yum install -y redis应可安装。

2.3 启动redis服务

三、配置运行

1.配置文件解析

1.1 GLOBAL段,主要是程序监听的IP和端口。

1.2 MYSQL段,必填,没有默认值,格式是mysql://host:port:user:password:database[?charset=utf8&timezone=+8:00],[]可省略保持默认

1.3 REDIS段,必填,没有默认值,格式是redis://[:password]@host:port/db

1.4 SSO段,passport客户端配置,必填,请转至 Passport文档-配置解析

如果只是临时测试,可以设置g.signin=True,方法:
    程序里src/main.py,大概61行,将以下代码:
        g.signin = verify_sessionId(request.cookies.get("sessionId"))
    替换为
        g.signin = True

1.5 SYSTEM段,HMAC_SHA256_KEY(变量名incetops_hmac_sha256_key)、AES_CBC_KEY(变量名incetops_aes_cbc_key)、JWT_SECRET_KEY(变量名incetops_jwt_secret_key)必须与passport中保持一致!

2. 配置文件示例

以设置系统环境变量为例,我是Linux环境,修改家目录的.bash_profile,增加以下内容(记得source下):

# GLOABL
export REDIS_PRE="redis://@127.0.0.1:6379"
export MYSQL_PRE="mysql://localhost:3306:root:123456"
export PASSPORT_URL="http://passport.demo.com"
export HMAC_SHA256_KEY="xxxxxxxxxxxxxxxxxxxxxxx"
export AES_CBC_KEY="要求16个字符"
export JWT_SECRET_KEY="xxxxxxx"
export SIGN_ACCESSKEYID="xxxxxxx"
export SIGN_ACCESSKEYSECRET="xxxxxxx"

#IncetOps
export incetops_mysql_url="${MYSQL_PRE}:IncetOps"
export incetops_redis_url="${REDIS_PRE}/0"
export incetops_sso_app_id="app_id"
export incetops_sso_app_secret="app_secret"
export incetops_sso_server=$PASSPORT_URL
## SYSTEM段-SSO主要配置(要与Passport保持一致)
export incetops_hmac_sha256_key="${HMAC_SHA256_KEY}"
export incetops_aes_cbc_key="${AES_CBC_KEY}"
export incetops_jwt_secret_key="${JWT_SECRET_KEY}"

3. 运行

3.1 开发环境执行命令python main.py,输出下面内容基本是没问题了:

* Running on http://0.0.0.0:16000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 193-386-021

3.2 正式环境

sh online_gunicorn.sh start    #启动
sh online_gunicorn.sh status  #查看启动状态

3.3 启动队列

注意:3.1、3.2仅仅运行了web进程,执行任务还需要启动rq进程,方法是:
sh online_rq.sh start      #启动
sh online_rq.sh status    #查看启动状态

PS. 当然报错的话,那就再研究研究,Google、Baidu,QQ群讨论都行。

4. 访问

配置文件中GLOBAL段Host、Port分别指定了监听地址和端口,默认监听0.0.0.0:16000,即全网访问,你可以通过修改配置文件或环境变量(incetops_host、incetops_port)更改默认参数。