walle2.0部署教程
linuxCentos7.6安装walle2.0使用教程
应用场景
多服务器git代码一致部署
walle官网
前期准备工作
1.1安全组配置
1.TCP 80(HTTP) 0.0.0.0/0
2.Any Any 0.0.0.0/0
3.TCP 5000 0.0.0.0/0
4.TCP 25(SMTP) 0.0.0.0/0
5.TCP 8888(宝塔)0.0.0.0/0
6.TCP 8080 0.0.0.0/0
7.TCP 465(SMTPS)0.0.0.0/0
8.TCP 3306(MYSQL)0.0.0.0/0
9.TCP 1-65535 0.0.0.0/0
1.2宝塔一键安装LNMP
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
注意:这是一条命令执行,因为编辑器造成的
登录宝塔
Bt-Panel: http://101.36.160.221:8888/f424eaef
username: nbrswdzt
password: 020bd54e
按照以下提示安装LNMP环境,这里注意:walle2.0不需要PHP的,是python开发的,不用可以直接卸载掉
1.2.1. LNMP安装
1.2.2. 创建站点以及数据库
拉取walle代码
cd /www/wwwroot/
rm -rf walle-web 删除原有的宝塔创建的网页目录
git clone https://github.com/meolu/walle-web.git
Nginx设置访问目录
在宝塔中设置默认文档
修改Nginx配置文件
upstream webservers {
server 0.0.0.0:5000 weight=1; # 负载设置
}
server {
listen 80;
server_name admin.walle-web.io 101.36.161.68; # 域名设置
# access_log /usr/local/nginx/logs/walle.log;
index index.html index.htm; # 日志目录
location / {
try_files $uri $uri/ /index.html;
add_header access-control-allow-origin *;
root /www/wwwroot/walle-web/fe; # 前端代码已集成到walle-web,即walle-web/fe的绝对路径(请修改成自己的)
}
location ^~ /api/ {
add_header access-control-allow-origin *;
proxy_pass http://webservers;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Origin $host:$server_port;
proxy_set_header Referer $host:$server_port;
}
location ^~ /socket.io/ {
add_header access-control-allow-origin *;
proxy_pass http://webservers;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Origin $host:$server_port;
proxy_set_header Referer $host:$server_port;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
# WebScoket Support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
检查刚才设置好Mysql数据库
在宝塔中设置好对外允许的端口
修改本地hosts 位置(域名不用改 内网通信用的)
127.0.0.1 admin.walle-web.io
初始化walle
sh admin.sh init
报错
如提示./venv/bin/activate: No such file or directoy 或 virtualenv –no-site-packages venv 可执行virtualenv –system-site-packages venv
如提示扩展无 可pip install 对应扩展 如提示扩展已存在可尝试先pip uninstall 对应扩展 (如pip install flask)
如提示 that satisfies the requirement gitdb>=4.0.1 可能要修改 requirements/prod.txt (GitPython==2.1.11) 或者pip install GitPython
执行sh admin.sh init 会出现以上错误
解决方法:
virtualenv --system-site-packages venv
执行完上面命令继续报错
根据以上操作信息
执行 pip install GitPython
然后再次执行sh admin.sh init
继续报错出现以下问题
中途报错
错误一般是pip的扩展无 或者配置没有对
扩展问题
如提示
pip install gunicorn==19.7.1
如不行尝试下面方法
建议:直接执行方法二简单靠谱
方法一:
因为有时候pip扩展他是安装在根目录的本机python下而不是在py venv虚拟环境内 要手动搬运过去 先pip此扩展 还是不行就去本机python安装目录找扩展
可将/usr/lib/python2.7/site-packages 中的扩展复制到 /www/wwwroot/walle-web/venv/lib/python2.7/site-packages中
方法二:(推荐)
完全可用的walle python2.7扩展包
链接:https://pan.baidu.com/s/1iZ5VdHBZa84YTfdwuYBoZA 提取码:imez
可将此丢进/walle-web/venv/lib/python2.7/中 一定要解压哦!,把原有的site-packages 删除掉 然后再次执行sh admin.sh init
创建一个数据库 walle
修改数据库配置和HOST
打开 walle-web/config/settings_prod.py
# -*- coding: utf-8 -*-
"""
walle-web
Application configuration.
注意: 带了 @TODO 的地方可能需要你的调整
:copyright: © 2015-2019 walle-web.io
:created time: 2018-11-24 07:05:35
:author: wushuiyong@walle-web.io
"""
import os
from walle.config.settings import Config
SETTINGS = {
"MYSQL_USER": "root",
"MYSQL_PASSWORD": "123456",
"MYSQL_DATABASE": "walle",
"MYSQL_ROOT_PASSWORD": "123456",
"MYSQL_HOST": "127.0.0.1",
"MYSQL_PORT": 3306,
}
class ProdConfig(Config):
"""Production configuration."""
ENV = 'prod'
DEBUG = True
# 服务启动 @TODO
# HOST 修改为与 nginx server_name 一致.
# 后续在web hooks与通知中用到此域名.
HOST = 'admin.walle-web.io'
PORT = 5000
# https True, http False
SSL = False
# 数据库设置 @TODO
# SQLALCHEMY_DATABASE_URI = 'mysql://user:password@localhost:3306/walle?charset=utf8'
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8mb4'.format(
SETTINGS["MYSQL_USER"], SETTINGS["MYSQL_PASSWORD"], SETTINGS["MYSQL_HOST"], SETTINGS["MYSQL_PORT"],
SETTINGS["MYSQL_DATABASE"])
# 阿里云RDS强制释放空闲连接导致经常报错 mysql server has gone way
# 适当修改该参数即可 单位为秒
# N秒不用的连接自动释放
# SQLALCHEMY_POOL_RECYCLE = 30
# 本地代码检出路径(用户查询分支, 编译, 打包) #TODO
CODE_BASE = '/tmp/walle/codebase/'
# 日志存储路径 @TODO
# 默认为walle-web项目下logs, 可自定义路径, 需以 / 结尾
# LOG_PATH = '/var/logs/walle/'
LOG_PATH = os.path.join(Config.PROJECT_ROOT, 'logs')
LOG_PATH_ERROR = os.path.join(LOG_PATH, 'error.log')
LOG_PATH_INFO = os.path.join(LOG_PATH, 'info.log')
LOG_FILE_MAX_BYTES = 100 * 1024 * 1024
# 邮箱配置 @TODO
MAIL_SERVER = 'smtp.exmail.qq.com'
MAIL_PORT = 465
MAIL_USE_SSL = True
MAIL_USE_TLS = False
MAIL_DEFAULT_SENDER = 'service@walle-web.io'
MAIL_USERNAME = 'service@walle-web.io'
MAIL_PASSWORD = 'Ki9y&3U82'
# 登录cookie 防止退出浏览器重新登录
COOKIE_ENABLE = False
安装walle数据库
sh admin.sh migration
(宝塔可能要直接 sh admin.sh upgrade)
启动
sh admin.sh start
后续操作
重启、升级、Migration
sh admin.sh restart # 重启
sh admin.sh upgrade # 升级walle,升级完需要重启walle服务。升级前最好 git stash 暂存本地修改,升级后git stash pop弹出暂存,然后重启服务。
sh admin.sh migration # Migration
访问域名---> 也就是用这个登录
超管:super@walle-web.io \ Walle123
所有者:owner@walle-web.io \ Walle123
负责人:master@walle-web.io \ Walle123
开发者:developer@walle-web.io \ Walle123
访客:reporter@walle-web.io \ Walle123
配置问题
配置问题请与我上面一致 可看错误日志(walle-web/logs/runtime.log)
作者:运维老许
联系方式:strive120620@163.com
微信公众号:Linux必修之路
声明1:本站部分资源收集自互联网,仅供个人学习交流,如不慎侵犯了您的权益,请联系我,我将尽快处理!
声明2:本文版权归作者,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利!