syncd是一个开源代码部署工具。简单、高效、易用,可以提高团队的工作效率。项目地址:https://github.com/dreamans/s...目录特性原理安装使用帮助授权特性Go语言开发,编译简单,运行高效Web界面接入,交互灵活角色权限配置支持Git仓库分支,tag在线部署hook支持完善的在线工作流Email通知机制GitSyncd服务通过git-ssh(或password)方式从仓库拉取指定tag(分支)代码构建并运行配置的构建脚本,并编译成软件包可以启动。在这个环节可以运行单元测试(比如gotestphpphpunit、下载依赖(比如go:glideinstallphp:composerinstall)、编译软件包(比如js:npmbuildgo:gobuildxx.gojava:javacxx.javac:ccxx.c)等分发软件包到各个机房生产服务器的临时目录,远程执行部署前配置命令,解压后软件包到目标目录execution,然后执行post-deploy命令分发上线,终止上线,状态设置为上线失败,需要再次点击online重试,以后支持同集群服务器在执行并行,集群间串行发布特性SSH信任生产服务器和部署服务器通过ssh-key建立信任配置方法,安装准备请参考秘钥配置章节,Go推荐Go1.10以上版本编译源代码。NginxWeb服务依赖NginxMySQL系统依赖Mysql来存储持久化数据。推荐版本Mysql5.7Linux+Bash系统会用到git、ssh、scp等命令,所以目前只推荐在Linux上使用,需要提前安装或更新这些命令。最新版密钥配置由于部署服务器(Syncd服务所在服务器)和生产服务器(代码部署目标机)之间采用ssh协议通信,所以需要添加公钥部署机器(一般在这里:~/.ssh/id_rsa.pub)到生产机器的信任列表(一般在这里~/.ssh/authorized_keys),可以使用ssh-copy-id命令添加,也可以手动复制。之后不要复制忘记测试连通性ssh{生产机用户名}@{生产机地址}最后建议在部署服务器ssh配置/etc/ssh/ssh_config中添加如下配置,并关闭公钥的显示提示总结防止后台脚本失败Host*StrictHostKeyCheckingno请注意:ssh目录权限需要按这个设置,不然就没有免密码登陆了~/.ssh0700~/.ssh/authorized_keys0600安装运行下面命令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:0HTTPService::8868StartRunning...添加Nginx配置upstreamsyncdServer{server127.0.0.1:8868weight=1;}server{listen80;服务器名称deploy.syncd.cc;#这里换成你的真实域名access_loglogs/deploy.syncd.cc.log;location/{try_files$uri$uri//index.html;根/path/syncd-deploy/public;#请将这里的/path替换为真实路径indexindex.htmlindex.htm;}location^~/api/{proxy_passhttp://syncdServer;proxy_set_headerX-Forwarded-Host$host:$server_port;proxy_set_headerX-Real-IP$remote_addr;proxy_set_header来源$host:$server_port;proxy_set_headerReferer$host:$server_port;}}重启nginx服务,修改hosts如果域名没有解析,可以修改hosts临时解析sudovim/etc/hosts127.0.0.1deploy.syncd.cc;安装完成后打开浏览器访问http://deploy.syncd.cc初始账号:用户名:syncd邮箱:syncd@syncd.cc密码:syncd.cc!!!登录后请尽快修改密码使用系统使用流程图使用截图帮助遇到问题请提issue或者加微信进讨论组授权本项目采用MIT开放源许可证已获得许可,完整的许可说明已放在LICENSE文件中
