点击右上方,关注开源中国OSC头条号,获取最新技能资讯
Syncd - 自动化支配工具
syncd是一款开源的代码支配工具,它具有大略、高效、易用等特点,可以提高团队的事情效率。

特性
Go措辞开拓,编译大略、运行高效Web界面访问,交互友好灵巧的角色权限配置支持Git仓库分支、tag上线支配hook支持完善的上线事情流邮件关照机制事理
Git
Syncd做事通过git-ssh(或password)办法从仓库中拉取指定tag(分支)代码
构建
运行配置好的构建脚本, 编译成可上线的软件包
在这一环节中,可运行单元测试 (例如 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
推举Go1.10以上版本, 用来编译源代
Nginx
Web做事依赖Nginx
MySQL
系统依赖Mysql存储持久化数据, 推举版本 Mysql 5.7
Linux + Bash + Git
系统会利用到 git, ssh, scp 等命令,以是目前只推举在Linux上利用, 并且须要提前安装或更新这些命令道最新版本。
请升级git到最新版本
秘钥配置
由于支配做事器(Syncd做事所在的做事器)与生产做事器(代码支配目标机)之间通过ssh协议通信,以是须要将支配机的公钥 (一样平常在这里: ~/.ssh/id_rsa.pub)加入莅临盆机的信赖列表中(一样平常在这里 ~/.ssh/authorized_keys)
可利用 ssh-copy-id 命令添加,或手动拷贝. 拷贝后不要忘却进行测试连通性 ssh {生产机用户名}@{生产机地址}
末了建议将以下配置加入到支配做事器ssh配置/etc/ssh/ssh_config中,关闭公钥择要的显示提示,防止后台脚本运行失落败
Host StrictHostKeyChecking no
请把稳: ssh目录权限需按此设置,否则会涌现无法免密登录的情形
~/.ssh 0700~/.ssh/authorized_keys 0600
安装
运行以下命令
curl https://raw.githubusercontent.com/dreamans/syncd/master/install.sh |bash
当前路径中若天生 syncd-deploy 或者 syncd-deploy-xxx 目录则表明安装成功
天生的 syncd-deploy 目录可拷贝或移动到你想要的地方,但不要试图将此目录拷贝到其他做事器上运行,会造成不可预见的结果.
数据库依赖
你须要将 github.com/dreamans/syncd/syncd.sql 数据表构造和数据导入到MySQL数据库中
修正配置文件
修正 syncd-deploy/etc/syncd.ini 中干系配置信息, 详细配置描述可参考注释
启动做事
cd syncd-deploy➜ syncd-deploy ./bin/syncd -c ./etc/syncd.ini __ _____ __ __ ____ _____ ____/ / / ___/ / / / / / __ \ / ___/ / __ / (__ ) / /_/ / / / / / / /__ / /_/ //____/ \__, / /_/ /_/ \___/ \__,_/ /____/Service: syncdVersion: 1.0.0Config Loaded: ./etc/syncd.iniLog: stdoutDatabase: 127.0.0.1Mail Enable: 0HTTP Service: :8868Start Running...
添加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; }}
重启nginx做事
修正hosts
若域名未解析,可修正hosts进行临时解析
sudo vim /etc/hosts127.0.0.1 deploy.syncd.cc;
安装完成
打开浏览器,访问 http://deploy.syncd.cc
初始账号:
用户名: syncd邮箱: syncd@syncd.cc密码: syncd.cc
!!!登录后请尽快修正密码
利用
系统利用流程图
利用截图
点击下方“理解更多”,获取软件下载地址。
↓↓↓