加载中......
输入验证码,即可复制
微信扫码下载好向圈APP, 登陆后即可进入消息页面查看验证码
只需要3秒时间
对于一个代码项目,传统的部署方式,是在服务器安装环境,然后上传代码,进行编译和配置,最终进行启动,完成上线。然而,这种朴素的代码发布方式早已不适用了,对于多用户、多语言、多项目、多环境的项目部署场景,手动部署显然是不现实的,自然而然就诞生了许多的自动化部署平台,如 Jenkins、Travis CI 等。Walle,同样是一个自动化的代码发布平台,它更加轻量、更加人性化、配置更加自由、更符合国人需求,是代码部署的一个不错选择。

Walle - 自动化代码项目部署平台-1.jpg

Walle部署平台
简介

Walle,是 meolu 在 Github 上开源的代码项目自动化部署平台,项目位于 https://github.com/meolu/walle-web,同时维护有 Gitee 镜像 https://gitee.com/wushuiyong/walle-web,目前版本为 v2.0.1。

Walle - 自动化代码项目部署平台-2.jpg

Walle平台

Walle 支持各种 web 代码发布,包括 PHP、Java、Python 和 Go 等,可以通过 Web 后台一键完成回滚。Walle 可自由配置,更人性化、高颜值、支持 Git、多用户、多语言、多项目、多环境同时部署的开源上线部署系统。

Walle 提供了类 Gitlab 的 RESTful API、类 Gitlab 的权限模型;提供了空间管理,可以实现独立的空间资源,包括环境管理、用户组、项目和服务器等;支持灰度发布;在项目管理中,支持部署、发布的前置和后置钩子,支持自定义的全局变量;命令行界面使用 Websocket 实现,提供实时的命令行展示;提供了完善的通知机制,包括邮件和钉钉等。


Walle - 自动化代码项目部署平台-3.jpg

Walle特性

安装

Walle 需要 Linux 系统,Python 3.5+ 和 Python 2.7+,和 MySQL 5.6.5 以上,并且需要把所有的目标主机加入到宿主机的 SSH 免密登录。安装首先下载项目代码:
git clone https://github.com/meolu/walle-web.git
然后修改服务器的 Nginx 配置:
server {    server_name  admin.walle-web.io; # 域名设置        location / {        try_files $uri $uri/ /index.html;        add_header access-control-allow-origin *;        root /walle-web/fe; # 前端代码已集成到walle-web,即walle-web/fe的绝对路径    }      location ^~ /api/ {        ...    }    location ^~ /socket.io/ {        ...    }}
并在 hosts 添加域名:
127.0.0.1  admin.walle-web.io # 与nginx配置一致
进入 Walle 代码中,对 Walle 配置进行所需的修改:
vi walle/config/settings_prod.py
对于数据库,需要新建数据库,并进行数据迁移:
mysql  -hxx -uxx -p -e'CREATE SCHEMA walle'sh admin.sh migration
完成了以上工作后,就可以进行启动:
sh admin.sh start
此时,Walle 就已经完成配置了,可以访问 http://admin.walle-web.io,初始登录账号如下:
超管: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 也提供了 Docker 的安装方式,可以更为方便地进行部署。

Walle - 自动化代码项目部署平台-4.jpg

Walle项目仓库
示例

Walle 平台包括:宿主机、目标机群和操作用户,其中宿主机是 Walle 所在的机器,是代码托管与远程目标集群的纽带。

Walle - 自动化代码项目部署平台-5.jpg

Walle架构

Walle 的组件和功能包括:服务器管理、用户中心、Dashboard、部署中心、项目中心、OpenAPI、CI/CD 和 CAS 等:


Walle - 自动化代码项目部署平台-6.jpg

Walle功能

Walle 的权限角色分为:SUPER 超管、OWNER 所有者、MASTER 负责人、DEVELOPER 开发者,和 REPORTER 访客,可操作的资源包括空间、项目、上线单、环境和用户等。

Walle - 自动化代码项目部署平台-7.jpg

Walle权限资源

对于代码项目上线,主要流程在宿主机进行完成:

Walle - 自动化代码项目部署平台-8.jpg

上线流程

Walle 提供了项目管理的界面:

Walle - 自动化代码项目部署平台-9.jpg

项目管理

对于单个项目,可以进行配置,设置包括名称、环境、Git 仓库、分支,和目标集群等:

Walle - 自动化代码项目部署平台-10.jpg

项目配置

还可以进行目标集群上的路径、仓库、版本保留数,以及部署排除文件、全局变量等。Walle 提供了4个任务,作为上线部署的核心配置:
    Deploy前置任务:在宿主机未检出代码前的前置任务,常为安装依赖、配置环境变量等;Deploy后置任务:在宿主机检出代码后的后置任务,常为编译、清除文件Release前置任务:在目标服务器同步代码到版本库后,服务切换的前置任务,常为停服、摘机器等Release后置任务:在目标服务器新版本服务切换后的后置任务,常为启动服务、启动节点

通过这4个任务的命令行命令,完成项目上线流程的实际工作。此外,还可以配置上线通知的方式,支持使用钉钉 hook 完成通知:

Walle - 自动化代码项目部署平台-11.jpg

项目管理 任务配置

Walle 提供了部署管理,可以进行环境的选择,可以在预设的测试、预发布和生产环境中,选择不同的配置模板完成快速上线:

Walle - 自动化代码项目部署平台-12.jpg

部署管理

选择环境后,就可以创建上线单,选取分支、版本和服务器进行上线单的提交:

Walle - 自动化代码项目部署平台-13.jpg

上线单创建

创建完成,并通过审核后,点击[开始],就可以开始进行目标集群的自动上线,按顺序执行:Deploy前置任务、Deploy、Deploy后置任务、Release前置任务、Release和 Release后置任务,并显示当前阶段和命令行输出:

Walle - 自动化代码项目部署平台-14.jpg

部署上线

可以管理现有的上线单:


Walle - 自动化代码项目部署平台-15.jpg

上线单列表

总结

Walle 作为一个自动化代码发布平台,相对于其他项目更为轻量,且提供了更为直接和方便的管理后台,可以通过简单的图形化配置,完成代码项目在服务器上的部署上线、环境管理、版本回滚等,比较适合较为简单场景下的部署的自动化,适合运维不足的开发团队的使用。Walle 使用 Python 开发,比较容易进行二次开发,可以进行功能的裁剪和添加,以适应自身的使用。
程序员圈
11210 查看 16 0 反对

说说我的看法高级模式

您需要登录后才可以回帖 登录|立即注册

  • 王王王有病

    2021-2-24 04:12:37 使用道具

    来自: 中国来自: 中国来自: 中国来自: 中国
    [捂脸]我基于它的写了个PHP版本的,没人用啊
  • d大调调味

    2021-2-25 04:20:22 使用道具

    来自: 北京来自: 北京来自: 北京来自: 北京
    这项目bug贼多,说是有团队维护,实际没人解决问题,原作者也不管项目,天天写自传和生活感悟[黑线]
  • 609660066

    2021-2-25 11:42:30 使用道具

    来自: 北京来自: 北京来自: 北京来自: 北京
    用drone吧
  • 轻轻的走过Sun

    2021-2-25 23:17:43 使用道具

    来自: 中国来自: 中国来自: 中国来自: 中国
    用syncd挺好,很简单
  • 赵武灵王复活

    2021-2-26 07:07:24 使用道具

    来自: 北京朝阳来自: 北京朝阳来自: 北京朝阳来自: 北京朝阳
    一个不维护的项目,天天还有人推荐
  • 艾格格的家

    2021-2-26 20:30:43 使用道具

    来自: 北京来自: 北京来自: 北京来自: 北京
    还可以,一个有ui的jenkins,这种东西还是可以的,我写代码用shell自动化发布操作,这种可以更简单。
  • 汽车科技

    2021-2-27 13:26:38 使用道具

    来自: 北京来自: 北京来自: 北京来自: 北京
    好工具,值得研究
  • 小虎的2005

    2021-2-28 11:17:25 使用道具

    来自: 中国来自: 中国来自: 中国来自: 中国
    这名字好熟悉,美团多渠道打包那个开源项目是不是也叫walle
  • 84883中士

    2021-2-28 20:18:32 使用道具

    来自: 北京来自: 北京来自: 北京来自: 北京
    自动化运维
  • xiaonong87

    2021-3-1 20:14:08 使用道具

    来自: 北京西城来自: 北京西城来自: 北京西城来自: 北京西城
    有些思路还是不错的

相关阅读