瓦力 Devops開源項目代碼部署平臺

Walle 2.0 - 瓦力 Devops開源項目代碼部署平臺

Walle 2.0 - 瓦力 Devops開源項目代碼部署平臺

功能強大,且免費開源的walle-web 瓦力終於更新2.0.0了!!!

walle 讓用戶代碼發佈終於可以不只能選擇 jenkins!支持各種web代碼發佈,php、java、python、go等代碼的發佈、回滾可以通過web來一鍵完成。walle 一個可自由配置項目,更人性化,高顏值,支持git、多用戶、多語言、多項目、多環境同時部署的開源上線部署系統。

Feature

類gitlab的RESTful API,類gitlab的權限模型。將來打通gitlab,良心的驚喜

空間管理。意味著有獨立的空間資源:環境管理、用戶組、項目、服務器等

灰度發佈。呼聲不斷,終於來了

項目管理。Deploy、Release的前置及後置hook,自定義全局變量;自帶檢測、複製功能,都貼心到這種程度了

websocket 實時展示部署中的 shell console,跟真的終端長得一樣。

完善的通知機制。郵件、釘釘

全新的UI,我自己都被震憾到了,如絲般流暢

架構拓撲:

Walle 2.0 - 瓦力 Devops開源項目代碼部署平臺

Walle 2.0 - 瓦力 Devops開源項目代碼部署平臺

功能預覽:

Walle 2.0 - 瓦力 Devops開源項目代碼部署平臺

項目管理

Walle 2.0 - 瓦力 Devops開源項目代碼部署平臺

服務器上線

Walle 2.0 - 瓦力 Devops開源項目代碼部署平臺

用戶管理

Walle 2.0 - 瓦力 Devops開源項目代碼部署平臺

項目部署

安裝部署

1.安全

務必部署在內網!

2.Clone code

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

3.Nginx config

別忘了要重啟nginx,注意標出可能需要改的地方

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的絕對路徑
}
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";
}
}

4.Hosts

vi /etc/hosts
# 新增一行
127.0.0.1 admin.walle-web.io # 與nginx配置一致

5.Install

安裝Python 2.7 + pip。

sh admin.sh init
# 注意:安裝mysqlclient失敗,需要先安裝libmysqlclient-dev(ubuntu)
# 注意:安裝失敗請指定python路徑. mac 可能會有用anaconda的python,找到自己系統的python 2.7追加參數指定 -p /usr/bin/python2.7 即可
# vi admin.sh +20
# virtualenv --no-site-packages -p /usr/local/bin/python2.7 venv

6.Config setting

帶 @TODO 就是可能要修改的地方

vi walle/config/settings_prod.py

7.Data Migration

7.0 MySQL 5.6.5以上,否則會在安裝時報錯。在MySQL 5.6.5版本之前,Automatic Initialization and Updating只適用於TIMESTAMP,而且一張表中,最多允許一個TIMESTAMP字段採用該特性。從MySQL 5.6.5開始,Automatic Initialization and Updating同時適用於TIMESTAMP和DATETIME,且不限制數量。

7.1 創建一個數據庫 walle

mysql -hxx -uxx -p -e'CREATE SCHEMA walle'

7.2 Data Migration

sh admin.sh migration

8.Start

8.1 啟動

sh admin.sh start 

8.2 重啟、升級、Migration

sh admin.sh restart # 重啟
sh admin.sh upgrade # 升級walle,升級完需要重啟walle服務。升級前最好 git stash 暫存本地修改,升級後git stash pop彈出暫存,然後重啟服務。
sh admin.sh migration # Migration

9.開啟walle 2.0之旅

恭喜你,大功告成!初始登錄賬號如下,開啟你的walle 2.0之旅吧:)

超管:[email protected] \\ Walle123
所有者:[email protected] \\ Walle123
負責人:[email protected] \\ Walle123
開發者:[email protected] \\ Walle123
訪客:[email protected] \\ Walle123

其它

walle運行過程,以及部署過程出錯了,具體日誌可以查看logs/runtime.log,別說你在啟動walle的時候沒注意到?

如果出現任何打開頁面出現404或者只顯示’wall-web 2.0’等,都是nginx配置或者服務沒有啟動,細心檢查。


分享到:


相關文章: