walle自动化部署跳坑指南

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

nginx

继续参考本人的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

mariaDB

这玩意不要太坑!竟然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;

于是基本工具就差不多了,下面开始干正事!
我调整了官网安装顺序,使之“更科学”


clone

开始当代码啦!先建一个目录来盛放代码,笔者放在了/opt/walle/下面

cd /opt/walle/
git clone https://github.com/meolu/walle-web.git

等它下载好

init

切换到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 默认密码
超管 [email protected] Walle123
所有者 [email protected] Walle123
负责人 [email protected] Walle123
开发者 [email protected] Walle123
访客 [email protected] Walle123

管理模型看官网啦
Super主要是管理人,对于具体项目,从Owner开始管理!

想要修改邮箱,请直接去mariaDB数据库里面修改。。。

使用

使用的时候请轻柔一点。。。效率十分不咋地。
需要添加本机ssh到github上才可以部署私有项目,需要添加本机的ssh密钥到目标机器上才可以正确部署!部署以后,目标路径会生成一个映射到实际的部署文件夹上。

笔者还没研究出来怎么支持Windows,不过我觉得也没这个必要。。。

上述内容请参考本人的CentOS7开箱指南!

笔者还是菜的厉害啊。。。求大佬放过!

猜你喜欢

转载自blog.csdn.net/a1323933782/article/details/86667450