Syncd——开源自动化部署工具
官网地址:https://gitee.com/dreamans/syncd/issues syncd是一款开源的代码部署工具,它具有简单、高效、易用等特点,可以提高团队的工作效率. 目前只支持类Linux系统. 特性
原理 Git Syncd服务通过git-ssh(或password)方式从仓库中拉取指定tag(分支)代码. 构建 运行配置好的构建脚本, 编译成可上线的软件包 在这一环节中,可运行单元测试 (例如 go test php phpunit, 下载依赖 (如 go: glide installphp: 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建立信任 配置方法请参考 秘钥配置 章节 安装 准备工作
推荐Go1.10以上版本, 用来编译源代码
请保持部署Syncd服务器的git版本为最新(>=2.20)
Web服务依赖Nginx
系统依赖Mysql存储持久化数据, 推荐版本 Mysql 5.7
系统会使用到 git, ssh, scp 等命令,所以目前只推荐在Linux上使用, 并且需要提前安装或更新这些命令道最新版本
由于部署服务器(Syncd服务所在的服务器)与生产服务器(代码部署目标机)之间通过ssh协议通信,所以需要将部署机的公钥 (一般在这里: ~/.ssh/id_rsa.pub)加入到生产机的信任列表中(一般在这里 ~/.ssh/authorized_keys) 可使用 ssh-copy-id 命令添加,或手动拷贝. 拷贝后不要忘记进行测试连通性 ssh {生产机用户名}@{生产机地址} 最后建议将以下配置加入到部署服务器ssh配置/etc/ssh/ssh_config中,关闭公钥摘要的显示提示,防止后台脚本运行失败
请注意: ssh目录权限需按此设置,否则会出现无法免密登录的情况
安装
二进制包下载地址:https://github.com/dreamans/syncd/releases
当前路径中若生成 syncd-deploy 或者 syncd-deploy-xxx 目录则表明安装成功
你需要将 github.com/dreamans/syncd/syncd.sql 数据表结构和数据导入到MySQL数据库中
修改 syncd-deploy/etc/syncd.ini 中相关配置信息, 具体配置描述可参考注释
|