(十五)項目部署工具 入門

本文爲學習筆記,主要用於記錄本人學習過程。部分內容爲轉載!!!!

一、Walle 瓦力

1.官網

官網: https://walle-web.io/

文檔:https://walle-web.io/docs/

2.安裝

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之旅

恭喜你,大功告成!瀏覽器打開http://admin.walle-web.io(因nginx配置域名而定)。初始登錄賬號如下,開啓你的walle 2.0之旅吧:)

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

10.其它

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

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

 

 

二、Syncd

1.官網

Syncd官網: https://syncd.cc

Syncd文檔:https://syncd.cc/docs/

2.環境要求

操作系統

Linux / macOS + Bash. 需要注意的是Syncd不支持Win系統。

Go 編譯環境

Syncd依賴 Go1.11+ 編譯環境,可前往官方網站 或 國內鏡像 下載安裝。

安裝配置go
    #Linux安裝配置go運行環境
    下載go安裝包:
    wget https://storage.googleapis.com/golang/go1.14.3.linux-amd64.tar.gz
    解壓go安裝包:
    tar -C /usr/local -zxvf go1.14.3.linux-amd64.tar.gz
    // 習慣用vim,沒有的話可以用命令`sudo apt-get install vim`安裝一個
    vim /etc/profile
    // 在最後一行添加
    export GOROOT=/usr/local/go
    export PATH=$PATH:$GOROOT/bin
    // wq保存退出後source一下
    source /etc/profile
    查看go版本信息
    go version

MySQL

MySQL 5.6+

Git

升級操作系統Git到最新版本。

3.編譯Syncd

執行以下命令

$ curl https://syncd.cc/install.sh | bash

若編譯程序未報錯並且在當前目錄中生成 syncd-deploy 子目錄,則表示安裝成功。

syncd-deploy目錄結構

syncd-deploy // syncd-deploy可修改爲任意其他目錄名稱
├── bin // bin目錄存放Syncd的可執行文件
│   └── syncd
├── etc // bin/syncd 程序運行時若不指定配置文件,則會在etc目錄中查找syncd.ini作爲默認配置
│   └── syncd.ini
├── log
├── public // 靜態資源目錄
    ├── css
    ├── favicon.ico
    ├── fonts
    ├── img
    ├── index.html
    └── js
└── resource // 資源目錄
    └── sql

生成的 syncd-deploy 目錄可拷貝或移動到你想要的地方,但不要試圖將此目錄拷貝到其他服務器上運行,會造成不可預料的結果。

4.導入數據庫

Syncd依賴的MySQL數據表結構存在於 syncd-deploy/resource/sql/syncd_{版本號}.sql 中

$ cd ./syncd-deploy
$ mysql --default-character-set=utf8mb4 < ./resource/sql/syncd_{版本號}.sql # 導入MySQL表結構

# mysql --default-character-set=utf8mb4 < ./resource/sql/syncd_v2.0.0.sql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
# mysql --default-character-set=utf8mb4 < ./resource/sql/syncd_v2.0.0.sql -uroot -p
Enter password:

5.配置文件

配置文件位置: syncd-deploy/etc/syncd.ini

修改數據庫連接信息(查看配置項詳細文檔)

[database]
host = 127.0.0.1
port = 3306
user = syncd
password = syncd
dbname = syncd

6.運行程序

$ cd syncd-deploy
$ ./bin/syncd

   _____   __  __   ____     _____   ____/ /
  / ___/  / / / /  / __ \   / ___/  / __  /
 (__  )  / /_/ /  / / / /  / /__   / /_/ /
/____/   \__, /  /_/ /_/   \___/   \__,_/
        /____/

Service:              syncd
Version:              v2.0.0
Config Loaded:        ./etc/syncd.ini
Log:                  stdout
Mail Enable:          0
HTTP Service:         :8878
Start Running...

打開瀏覽器,訪問 http://localhost:8878

初始賬號:

用戶名: syncd
密碼: 111111

!!!登錄後儘快修改默認密碼

7.使用方法

項目配置

集羣配置

祕鑰配置

由於部署服務器(Syncd服務所在的服務器)與生產服務器(代碼部署目標機)之間通過ssh協議通信,所以需要將部署服務器的公鑰 (一般在這裏: $HOME/.ssh/id_rsa.pub)加入到生產機的信任列表中(一般在這裏 $HOME/.ssh/authorized_keys

可使用 ssh-copy-id 命令添加,或手動拷貝。

設置完成後不要忘記進行測試連通性 ssh {生產機用戶名}@{生產機地址}

注意:部署服務器的$HOME必須與運行Syncd的用戶一致,否則ssh的免密登錄將無效。

構建配置

配置說明

通過項目列表中的 構建設置 來編輯構建腳本。腳本需在上線單中手動觸發,系統會使用 /bin/bash -c {腳本文件} 執行。

構建腳本支持的變量

  • ${env_workspace}

代碼倉庫本地副本目錄

  • ${env_pack_file}

打包文件絕對地址,構建完成後將需要部署到線上的代碼打包到此文件中,必須使用 tar -zcf 命令進行打包。

部署模塊會將此壓縮包分發到目標主機並解壓縮到指定目錄,請按照要求打包,否則會部署失敗。

簡單構建示例

cd ${env_workspace}
tar --exclude='.git' -zcvf ${env_pack_file} *

Laravelg構建示例

cd ${env_workspace}
composer install
tar --exclude='.git' -zcvf ${env_pack_file} *

前端項目構建示例

cd ${env_workspace}
yarn
yarn build
cd ./dist
tar -zcvf ${env_pack_file} *

Java項目構建示例

cd ${env_workspace}
未完待續

Syncd構建示例

cd ${env_workspace}
make
cd ./output
tar -zcvf ${env_pack_file} *

部署配置

提交申請單

發佈項目

8.問題

1 執行安裝命令出現too many errors

原因:

由於安裝新版本的時候,沒有刪除舊版本,導致安裝包的有些關聯發生錯誤

解決方案:

先手動刪除之前安裝的包,再重新按照

rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.14.1.darwin-amd64.tar.gz

2 獲取依賴超時

解決:

獲取依賴超時,推薦使用goproxy.io

 export GO111MODULE=on
 export GOPROXY=https://goproxy.io

三、Gopub

1.相關網站

oschina:oschina.net/p/gopub

github:https://github.com/linclin/gopub

2、軟件配置

centos7

mysql5.7.26

gopub1.1.3

3、數據庫配置

CREATE DATABASE `wordpress` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

grant all privileges  on  gopub.* to  walle@<ip> identified by '<密碼>' with grant option;

flush privileges;

4、gopub安裝

cd /opt/
yum install git vim wget

# 源碼
# git clone https://github.com/linclin/gopub.git
wget https://github.com/linclin/gopub/releases/download/gopub-1.1.3/gopub-1.1.3.tar.gz
tar -zxvf gopub-1.1.3.tar.gz

vim /opt/gopub/src/conf/app.conf
#數據庫配置
mysqluser = "root"
mysqlpass = "xxxx"
mysqlhost = "127.0.0.1"
mysqlport = 3306
mysqldb   = "wordpress"

cd gopub
#執行數據庫初始化
./control init

#啓動
./control start
systemctl stop iptables 

訪問地址:http://127.0.0.1:8192

用戶名:admin

初始密碼:123456

5、訪問驗證

6.使用方式

項目配置

發佈上線

 


————————————————
部分內容轉載於:https://www.cnblogs.com/wangshuyang/p/11544891.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章