目錄
方案1,(國內用戶無法成功, 因爲無法拉取 go.lang.org)
簡介:
Syncd是一款開源的代碼部署工具,它具有簡單、高效、易用等特點,可以提高團隊的工作效率。
環境需求
操作系統
Linux / macOS + Bash. 需要注意的是Syncd不支持Win系統。
Go 編譯環境
Syncd依賴 Go1.11+
編譯環境,可前往官方網站 或 國內鏡像 下載安裝。
操作可以參考
https://blog.csdn.net/qq_21047625/article/details/89053569
MySQL
MySQL 5.6+
安裝參考: https://mp.csdn.net/postedit/89053070
Git
升級操作系統Git到最新版本。
參考官方文檔: https://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git
原理:
Syncd通過 git-ssh
方式創建倉庫本地副本,通過運行項目構建腳本來生成可發佈的代碼包,使用 scp
串行/並行地向生產服務器分發並解包部署。
Syncd與生產服務器通過ssh交互,因此Syncd運行用戶的 ssh-key 必須加入到目標主機的用戶ssh-key信任列表中。
安裝準備
新建對應的用戶和用戶組
[syncd@VM_121_116_centos ~]$ groupadd syncd
[syncd@VM_121_116_centos ~]$ useradd -g syncd syncd
[syncd@VM_121_116_centos ~]$ passwd syncd
新建目錄
[syncd@VM_121_116_centos ~]$ mkdir -p /user/local/syncd
開始安裝
國內用戶無法訪問go.lang.org ,採用方案2
方案1,(國內用戶無法成功, 因爲無法拉取 go.lang.org)
到新建的目錄下執行命令
[syncd@VM_121_116_centos ~]$ cd /usr/local/syncd/
[syncd@VM_121_116_centos syncd]$ curl https://syncd.cc/install.sh | bash
錯誤
執行過程中如果報以下錯誤, 是因爲服務器無法訪問 go.lang.org , 請採用方案2
build command-line-arguments: cannot load golang.org/x/sys/unix: unrecognized import path "golang.org/x/sys" (https fetch: Get https://golang.org/x/sys?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
make: *** [build] Error 1
cp: cannot stat ‘/home/syncd/.syncd-repo/output’: No such file or directory
方案2(修稿 mod 替換 go.lang.org 依賴)
修改剛剛 install.sh
先用wget下載剛剛用的 sh
[syncd@VM_121_116_centos syncd]$ cd /usr/local/syncd/
[syncd@VM_121_116_centos syncd]$ wget https://syncd.cc/install.sh
修改 install.sh
[syncd@VM_121_116_centos syncd]$ vim install.sh
代碼裏面加上到指定位置.
##替換依賴解決翻牆
echo "replace (" >> go.mod
echo " golang.org/x/crypto => github.com/golang/crypto latest" >> go.mod
echo " golang.org/x/net => github.com/golang/net latest" >> go.mod
echo " golang.org/x/sys => github.com/golang/sys latest" >> go.mod
echo " cloud.google.com/go => github.com/googleapis/google-cloud-go latest" >> go.mod
echo ")" >> go.mod
注意, 版本更新後如果還有其他的包無法下載, 可以依據上面的方式替換成 github的源
之後執行剛剛修改的腳本
[syncd@VM_121_116_centos syncd]$ chmod 755 install.sh
[syncd@VM_121_116_centos syncd]$ ./install.sh
目錄下面出現 syncd-deploy 文件夾表示成功
新建mysql的庫和用戶
登錄mysql
[root@VM_121_116_centos ~]# mysql -u root -p
新建數據庫和用戶
注意: 儘量不要使用utf8 編碼, 要使用的話, 請使用 utf8mb4
create schema syncd default character set utf8mb4;
use mysql
CREATE USER syncd IDENTIFIED BY 'QQ123qaz!';
GRANT ALL PRIVILEGES ON syncd.* TO syncd@'%';
flush privileges;
導入數據庫
進入 剛剛建的用戶
[root@VM_121_116_centos ~]# mysql -u syncd -p
選擇 syncd 數據庫,執行 syncd-deploy/resource/sql/ 腳本, 腳本文件名依據版本不同可自行查看
執行腳本要注意, 下面截圖中所有表的字符集, 記得改成和mysql的庫一致
改完之後導入即可
mysql> use syncd
Database changed
mysql> source /usr/local/syncd/syncd-deploy/resource/sql/syncd_v2.0.0.sql
ERROR 1007 (HY000): Can't create database 'syncd'; database exists
這裏的錯誤是因爲我們自己手工創建了 syncd 數據庫, 無需關心
修改 syncd 的數據庫信息,
[syncd@VM_121_116_centos syncd]$ vim syncd-deploy/etc/syncd.ini
運行 syncd
[syncd@VM_121_116_centos syncd]$ cd syncd-deploy/
[syncd@VM_121_116_centos syncd-deploy]$ nohup ./bin/syncd
訪問
默認用戶密碼
syncd/111111