推荐一款开源的代码部署工具,它具有简单、高效、易用等特点,可以提高团队的工作效率。

构建
运行配置好的构建脚本,编译成可上线的软件包 在这一环节中,可运行单元测试 (例如 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) 等。分发
通过 scp 命令分发软件包到各机房生产服务器的临时目录,远程执行 pre-deploy 配置的命令,执行完毕后解压缩软件包到目标目录,然后执行 post-deploy 命令 分发上线过程是串行执行,并且任意步骤执行失败整个上线单会终止上线并将状态置为上线失败,需要点击 再次上线 重试。将来会支持同一集群服务器并行执行,集群之间串行发布的特性。
SSH信任
生产服务器与部署服务器之间通过ssh-key建立信任 配置方法请参考 秘钥配置 章节安装
准备工作
- Go
- Git
请保持部署Syncd服务器的git版本为最新(>=2.20)
- Nginx
- MySQL
- Linux + Bash
- 秘钥配置
<font style="color:rgb(36, 41, 46);">ssh {生产机用户名}@{生产机地址}</font>
最后建议将以下配置加入到部署服务器ssh配置/etc/ssh/ssh_config中,关闭公钥摘要的显示提示,防止后台脚本运行失败
请注意: ssh目录权限需按此设置,否则会出现无法免密登录的情况
Host *
StrictHostKeyChecking no
~/.ssh 0700
~/.ssh/authorized_keys 0600
安装
- 二进制包安装
curl https://raw.githubusercontent.com/dreamans/syncd/master/install.sh | bash
当前路径中若生成 syncd-deploy 或者 syncd-deploy-xxx 目录则表明安装成功
生成的 syncd-deploy 目录可拷贝或移动到你想要的地方,但不要试图将此目录拷贝到其他服务器上运行,会造成不可预料的结果。
- 数据库依赖
- 修改配置文件
- 启动服务
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配置
重启Nginx服务
upstream syncdServer {
server 127.0.0.1:8868 weight=1;
}
server {
listen 80;
server_name deploy.syncd.cc; # 此处替换成你的真实域名
access_log logs/deploy.syncd.cc.log;
location / {
try_files $uri $uri/ /index.html;
root /path/syncd-deploy/public; # 此处/path请替换成真实路径
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;
}
}
修改hosts
若域名未解析,可修改hosts进行临时解析
sudo vim /etc/hosts
127.0.0.1 deploy.syncd.cc;
安装完成
打开浏览器,访问 http://deploy.syncd.cc 初始账号:用户名: syncd
邮箱: syncd@syncd.cc
密码: syncd.cc
!!!登录后请尽快修改密码
使用
系统使用流程图
使用截图
![]() |
![]() |
![]() |
---|---|---|
![]() |
![]() |
![]() |
![]() |