
Syncd開源自動化部署工具
官網(wǎng)地址:https://gitee.com/dreamans/syncd/issues
syncd是一款開源的代碼部署工具,它具有簡單、高效、易用等特點(diǎn),可以提高團(tuán)隊(duì)的工作效率.
目前只支持類Linux系統(tǒng).
特性
Go語言開發(fā),編譯簡單、運(yùn)行高效
Web界面訪問,交互友好
靈活的角色權(quán)限配置
支持Git倉庫
分支、tag上線
部署hook支持
完善的上線工作流
郵件通知機(jī)制
原理
Git
Syncd服務(wù)通過git-ssh(或password)方式從倉庫中拉取指定tag(分支)代碼.
構(gòu)建
運(yùn)行配置好的構(gòu)建腳本, 編譯成可上線的軟件包
在這一環(huán)節(jié)中,可運(yùn)行單元測試 (例如?go test?php phpunit, 下載依賴 (如?go: glide install?php: composer install), 編譯軟件包 (如?js: npm build?go: go build xx.go?java: javac xx.java?c: cc xx.c) 等.
分發(fā)
通過?scp?命令分發(fā)軟件包到各機(jī)房生產(chǎn)服務(wù)器的臨時目錄, 遠(yuǎn)程執(zhí)行 pre-deploy 配置的命令, 執(zhí)行完畢后解壓縮軟件包到目標(biāo)目錄,然后執(zhí)行?post-deploy?命令
分發(fā)上線過程是串行執(zhí)行,并且任意步驟執(zhí)行失敗整個上線單會終止上線并將狀態(tài)置為上線失敗,需要點(diǎn)擊?再次上線?重試.
將來會支持同一集群服務(wù)器并行執(zhí)行, 集群之間串行發(fā)布的特性
SSH信任
生產(chǎn)服務(wù)器與部署服務(wù)器之間通過ssh-key建立信任
配置方法請參考?秘鑰配置?章節(jié)
安裝
準(zhǔn)備工作
Go
推薦Go1.10以上版本, 用來編譯源代碼
Git
請保持部署Syncd服務(wù)器的git版本為最新(>=2.20)
Nginx
Web服務(wù)依賴Nginx
MySQL
系統(tǒng)依賴Mysql存儲持久化數(shù)據(jù), 推薦版本?Mysql 5.7
Linux + Bash
系統(tǒng)會使用到?git,?ssh,?scp?等命令,所以目前只推薦在Linux上使用, 并且需要提前安裝或更新這些命令道最新版本
秘鑰配置
由于部署服務(wù)器(Syncd服務(wù)所在的服務(wù)器)與生產(chǎn)服務(wù)器(代碼部署目標(biāo)機(jī))之間通過ssh協(xié)議通信,所以需要將部署機(jī)的公鑰 (一般在這里:?~/.ssh/id_rsa.pub)加入到生產(chǎn)機(jī)的信任列表中(一般在這里?~/.ssh/authorized_keys)
可使用?ssh-copy-id?命令添加,或手動拷貝. 拷貝后不要忘記進(jìn)行測試連通性?ssh {生產(chǎn)機(jī)用戶名}@{生產(chǎn)機(jī)地址}
最后建議將以下配置加入到部署服務(wù)器ssh配置/etc/ssh/ssh_config中,關(guān)閉公鑰摘要的顯示提示,防止后臺腳本運(yùn)行失敗
Host *
? ?StrictHostKeyChecking no
請注意: ssh目錄權(quán)限需按此設(shè)置,否則會出現(xiàn)無法免密登錄的情況
~/.ssh ?0700
~/.ssh/authorized_keys 0600
安裝
二進(jìn)制包安裝
二進(jìn)制包下載地址:https://github.com/dreamans/syncd/releases
源碼編譯安裝
curl https://raw.githubusercontent.com/dreamans/syncd/master/install.sh |bash
當(dāng)前路徑中若生成?syncd-deploy?或者?syncd-deploy-xxx?目錄則表明安裝成功
生成的?syncd-deploy?目錄可拷貝或移動到你想要的地方,但不要試圖將此目錄拷貝到其他服務(wù)器上運(yùn)行,會造成不可預(yù)料的結(jié)果.
數(shù)據(jù)庫依賴
你需要將?github.com/dreamans/syncd/syncd.sql?數(shù)據(jù)表結(jié)構(gòu)和數(shù)據(jù)導(dǎo)入到MySQL數(shù)據(jù)庫中
修改配置文件
修改?syncd-deploy/etc/syncd.ini?中相關(guān)配置信息, 具體配置描述可參考注釋
啟動服務(wù)
cd syncd-deploy
? ?syncd-deploy ./bin/syncd -c ./etc/syncd.ini
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?__
? _____ ? __ ?__ ? ____ ? ? _____ ? ____/ /
?/ ___/ ?/ / / / ?/ __ \ ? / ___/ ?/ __ ?/
(__ ?) ?/ /_/ / ?/ / / / ?/ /__ ? / /_/ /
/____/ ? \__, / ?/_/ /_/ ? \___/ ? \__,_/
? ? ? ?/____/
Service: ? ? ? ? ? ? ?syncd
Version: ? ? ? ? ? ? ?1.0.0
Config Loaded: ? ? ? ?./etc/syncd.ini
Log: ? ? ? ? ? ? ? ? ?stdout
Database: ? ? ? ? ? ? 127.0.0.1
Mail Enable: ? ? ? ? ?0
HTTP Service: ? ? ? ? :8868
Start Running...
添加Nginx配置
upstream syncdServer {
? ?server 127.0.0.1:8868 weight=1;
}
server {
? ?listen ? ? ? 80;
? ?server_name ?deploy.syncd.cc; # 此處替換成你的真實(shí)域名
? ?access_log ? logs/deploy.syncd.cc.log;
? ?location / {
? ? ? ?try_files $uri $uri/ /index.html;
? ? ? ?root /path/syncd-deploy/public; # 此處/path請?zhí)鎿Q成真實(shí)路徑
? ? ? ?index index.html index.htm;
? ?}
? ?location ^~ /api/ {
? ? ? ?proxy_pass ? ? ? ? ?http://syncdServer;
? ? ? ?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;
? ?}
}
重啟nginx服務(wù)
修改hosts
若域名未解析,可修改hosts進(jìn)行臨時解析
sudo vim /etc/hosts
127.0.0.1 ?deploy.syncd.cc;
安裝完成
打開瀏覽器,訪問?http://deploy.syncd.cc
初始賬號:
用戶名: syncd
郵箱: syncd@syncd.cc
密碼: syncd.cc
!!!登錄后請盡快修改密碼
使用
系統(tǒng)使用流程圖
幫助
遇到問題請?zhí)?issue:https://gitee.com/dreamans/syncd/issues
LICENSE
本項(xiàng)目采用 MIT 開源授權(quán)許可證,完整的授權(quán)說明已放置在 LICENSE 文件中
[超站]友情鏈接:
四季很好,只要有你,文娛排行榜:https://www.yaopaiming.com/
關(guān)注數(shù)據(jù)與安全,洞悉企業(yè)級服務(wù)市場:https://www.ijiandao.com/

隨時掌握互聯(lián)網(wǎng)精彩
- 1 豐收時節(jié)感悟總書記的“三農(nóng)”情懷 7904877
- 2 深圳機(jī)場飛機(jī)被“五花大綁”防臺風(fēng) 7808715
- 3 疑追風(fēng)觀浪 香港一對母子被卷入海 7712930
- 4 盤點(diǎn)新疆的全國之“最” 7618548
- 5 驢肉價格上漲 中國正面臨缺驢問題 7523915
- 6 用一條毛巾避免大窗玻璃離家出走 7425859
- 7 護(hù)網(wǎng):社交賬號不受控制?木馬在作祟 7332880
- 8 鴻蒙智行秋季新品發(fā)布會 7237061
- 9 “晚1秒就撞 我肯定不慣著他” 7142530
- 10 中國每年吃掉約70億只白羽肉雞 7047108