Powered by Phantomlsh
本文笔者使用的系统为Linux CentOS7 64bit,walle-web自动化部署版本为walle2.0
官网地址:walle-web.io
先说说感性的东西。。。
说实在的,第一眼在gitee上面看到国产的walle自动化部署还激动了很久,终于不用折腾奇妙的jenkins了hhhh!
然后一秒打脸。先用docker部署,然后发现挺麻烦的,就回去用标准安装,结果遇到一堆坑。。。
本文主要用于介绍walle2.0自动化部署的标准安装的跳坑方法!
Linux系统先简单调教一下(参考本人的CentOS7开箱指南),阿里源和EPEL源都装一装。
一些简单的依赖:
yum install -y gcc gcc-c++ python-devel
继续参考本人的CentOS7开箱指南:
先加载Nginx的源
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum安装
yum install -y nginx
启动服务并加入开机启动项
systemctl start nginx.service
systemctl enable nginx.service
这玩意不要太坑!竟然5.5的还不行。。。于是就得找个方法安装新版本了。
修改(创建)/etc/yum.repos.d/mariadb.repo
来添加源:
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3.4/centos7-amd64/
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
然后基操安装:
yum install -y mariadb-server mariadb-client
加入开机启动项并启动服务
systemctl enable mariadb
systemctl start mariadb
安装好了以后需要有一些前期准备:
进入mysql:
mysql -u root -p
然后不输入密码,敲回车即可。
创建walle数据库:
CREATE SCHEMA walle;
创建一个用户并授权给walle使用(推荐):
grant all privileges on walle.* to walle@localhost identified by 'walle';
flush privileges;
于是基本工具就差不多了,下面开始干正事!
我调整了官网安装顺序,使之“更科学”
开始当代码啦!先建一个目录来盛放代码,笔者放在了/opt/walle/
下面
cd /opt/walle/
git clone https://github.com/meolu/walle-web.git
等它下载好
切换到git clone下来的目录:
cd /opt/walle/walle-web/
初始化(这功能还是挺良心的):
sh admin.sh init
等一会,应该会安装python什么的。遇到坑就去官网上看常见问题,我这里一遍过了。
先切换到项目根目录
cd /opt/walle/walle-web/
编辑文件walle/config/settings_prod.py
,按照@TODO去修改,其中有个大坑!
有个字段叫HOST,它说是填你的域名,其实该填0.0.0.0!!!
(我也是很无语的)
还有,MySQL的那里,需要按照你上面创建的用户(walle)来填,中间部分替换为:walle:walle@localhost
我就搞不懂为啥这一步官网上要叫migration…
还是在项目根目录下面操作:
sh admin.sh migration
切换到nginx的配置目录下面:
cd /etc/nginx/conf.d/
创建一个文件walle.conf
(给walle用)并写入下面的代码(要改的地方有注释)(两个#的注释是笔者写的,其余是官网原版):
upstream webservers {
server 0.0.0.0:5000 weight=1; #域名设置 ##不要动就好!(天知道他想表达什么)
}
server {
listen 80; ## 改成你需要的端口(一般就不动了)
server_name admin.walle-web.io; # 域名设置 ##设置成你自己的域名
access_log /usr/local/nginx/logs/walle.log main; ## 这行最好删掉!(貌似会报错)
index index.html index.htm; # 日志目录
location / {
try_files $uri $uri/ /index.html;
add_header access-control-allow-origin *;
root /walle-web/fe; # 前端代码已集成到walle-web,即walle-web/fe的绝对路径
##上面那行注释是官网的迷之描述,正确的在下面
##需要改成对应的路径!比如笔者的:root /opt/walle/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";
}
}
写好了以后,记得要重启nginx:
systemctl restart nginx
切换到根目录下面(cd /opt/walle/walle-web/
),开始运行!
sh admin.sh start
然后打开你在nginx里面写的域名,就可以啦!
附上一些常用命令(直接抄的官网):
sh admin.sh restart # 重启
sh admin.sh upgrade # 升级walle,升级完需要重启walle服务。升级前最好 git stash 暂存本地修改,升级后git stash pop弹出暂存,然后重启服务。
sh admin.sh migration # Migration
身份 | 默认密码 | |
---|---|---|
超管 | [email protected] | Walle123 |
所有者 | [email protected] | Walle123 |
负责人 | [email protected] | Walle123 |
开发者 | [email protected] | Walle123 |
访客 | [email protected] | Walle123 |
管理模型看官网啦
Super主要是管理人,对于具体项目,从Owner开始管理!
想要修改邮箱,请直接去mariaDB数据库里面修改。。。
使用的时候请轻柔一点。。。效率十分不咋地。
需要添加本机ssh到github上才可以部署私有项目,需要添加本机的ssh密钥到目标机器上才可以正确部署!部署以后,目标路径会生成一个映射到实际的部署文件夹上。
笔者还没研究出来怎么支持Windows,不过我觉得也没这个必要。。。
上述内容请参考本人的CentOS7开箱指南!
笔者还是菜的厉害啊。。。求大佬放过!