官网:https://gitee.com/dreamans/sy...Syncd是一款开源的代码部署工具,简单、高效、易用,可以提高团队的工作效率。目前只支持类Linux系统。特点Go语言开发,编译简单,运行高效Web界面接入,交互灵活的角色权限配置支持Git仓库分支,标签在线部署钩子支持完善的在线工作流邮件通知机制原理GitSyncd服务从指定的标签(分支)代码中拉取通过git-ssh(或密码)仓库。构建并运行配置好的构建脚本,编译成可以启动的软件包。在这个链接中,可以运行单元测试(比如gotest`phpphpunit,下载依赖(比如go:glideinstallphp:composerinstall`),编译软件包(比如`js:npmbuildgo:gobuildxx.gojava:javacxx.javac:ccxx.c`)等分发使用scp命令分发软件包到各机房生产服务器的临时目录,远程执行预部署配置命令,解压软件执行后打包到目标目录,然后执行post-deploy命令,分发和上线过程是串行执行,任何一步执行失败,整个上线订单将终止,状态设置为上线失败需要再次点击Online再试,以后会支持同一个集群服务器并行执行,集群间串行发布的特性SSH信任生产服务器和部署服务器建立信任的配置方法通过ssh-key,安装准备请参考“秘钥配置”章节。Go推荐Go1.10或以上版本,用于编译源码。Git请保持部署的Syncd服务器的git版本为最新(>=2.20)NginxWeb服务依赖NginxMySQL系统依赖Mysql存储持久化数据,推荐版本Mysql5.7Linux+Bash系统会使用git,ssh,scp等命令,所以目前只推荐在linux上使用,而且这些命令需要提前安装或更新最新版本的secret密钥配置自部署服务器(Syncd服务所在的服务器)和生产服务器(代码部署目标机器)通过ssh协议进行通信,部署机器的公钥(通常在这里:~/.ssh/id_rsa.pub)需要添加到生产机器的信任列表中(通常在这里~/.ssh/authorized_keys)可以使用ssh-copy-id命令添加,也可以手动复制。ssh{productionmachineusername}@{productionmachineaddress}copy后不要忘记测试连通性最后建议在部署服务器添加如下配置在ssh配置/etc/ssh/ssh_config中,关闭显示公钥摘要提示,防止后台脚本运行失败。Host*StrictHostKeyCheckingno请注意:ssh目录的权限必须按此设置,否则会出现无密码无法登录的情况~/.ssh0700~/.ssh/authorized_keys0600安装二进制包安装二进制包下载地址:https://github.com/dreamans/s...源码编译安装curlhttps://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中的相关配置信息,具体配置说明可以参考注释启动服务cdsyncd-deploy?syncd-deploy./bin/syncd-c./etc/syncd.ini________________________///___//////__\/___//__/(__)//_////////__//_///____/\__,//_//_/\___/\__,_//____/服务:syncdVersion:1.0.0Config加载:./etc/syncd.inilog:stdoutdatabase:127.0.0.1mailenable:0http服务::8868启动运行...添加nginx配置上游SyncdServer{Server127.0.0.0.0.1:8868#这里替换成你的真实域名access_loglogs/deploy.syncd.cc.log;location/{try_files$uri$uri//index.html;根/path/syncd-deploy/public;#请将/path替换为真实路径索引index.htmlindex.htm;}location^~/api/{proxy_passhttp://syncdServer;proxy_set_headerX-Forwarded-Host$host:$server_port;proxy_set_headerX-Real-IPhost$remote_addr$adproxy_:$server_port;proxy_set_headerReferer$host:$server_port;}}重启nginx服务,修改hosts如果域名没有解析,可以修改hosts临时解析sudovim/etc/hosts127.0.0.1deploy.syncd.cc;安装完成后,打开浏览器Device,访问http://deploy.syncd.cc初始账号:用户名:syncd邮箱:syncd@syncd.cc密码:syncd.cc!!!登录后请尽快修改密码使用系统使用流程图使用截图帮助您遇到请提交issue:https://gitee.com/dreamans/sy...LICENSE本项目使用MIT开源授权license,完整的授权说明已经放在LICENSE文件中。欢迎大家关注我的微信【移民哥技术之路】,最新2TB技术干货:包括架构师实战教程、大数据、Docker容器、系统操作等维度、数据库、redis、MogoDB、电子书、Java基础课程、Java实战项目、ELKStack、机器学习、BAT面试精讲视频等,只需在“打工哥技术之路”微信公众号对话框回复关键字:1024即可获取全部资料。
