Syncd-开源自动化部署工具

官网地址:https://gitee.com/dreamans/syncd/issues

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

目前只支持类Linux系统.

特性

Go语言开发,编译简单、运行高效

Web界面访问,交互友好

灵活的角色权限配置

支持Git仓库

分支、tag上线

部署hook支持

完善的上线工作流

邮件通知机制

原理

Git

Syncd服务通过git-ssh(或password)方式从仓库中拉取指定tag(分支)代码.

构建

运行配置好的构建脚本, 编译成可上线的软件包

在这一环节中,可运行单元测试 (例如 , 下载依赖 (如 ), 编译软件包 (如 ) 等.

分发

通过 命令分发软件包到各机房生产服务器的临时目录, 远程执行 pre-deploy 配置的命令, 执行完毕后解压缩软件包到目标目录,然后执行 命令

分发上线过程是串行执行,并且任意步骤执行失败整个上线单会终止上线并将状态置为上线失败,需要点击再次上线重试.

将来会支持同一集群服务器并行执行, 集群之间串行发布的特性

SSH信任

生产服务器与部署服务器之间通过ssh-key建立信任

配置方法请参考 章节

安装

准备工作

Go

推荐Go1.10以上版本, 用来编译源代码

Git

请保持部署Syncd服务器的git版本为最新(>=2.20)

Nginx

Web服务依赖Nginx

MySQL

系统依赖Mysql存储持久化数据, 推荐版本

Linux + Bash

系统会使用到 , , 等命令,所以目前只推荐在Linux上使用, 并且需要提前安装或更新这些命令道最新版本

秘钥配置

由于部署服务器(Syncd服务所在的服务器)与生产服务器(代码部署目标机)之间通过ssh协议通信,所以需要将部署机的公钥 (一般在这里: )加入到生产机的信任列表中(一般在这里 )

可使用 命令添加,或手动拷贝. 拷贝后不要忘记进行测试连通性

最后建议将以下配置加入到部署服务器ssh配置中,关闭公钥摘要的显示提示,防止后台脚本运行失败

请注意: ssh目录权限需按此设置,否则会出现无法免密登录的情况

安装

二进制包安装

二进制包下载地址:https://github.com/dreamans/syncd/releases

源码编译安装

curl https://raw.githubusercontent.com/dreamans/syncd/master/install.sh |bash

当前路径中若生成 或者 目录则表明安装成功

生成的 目录可拷贝或移动到你想要的地方,但不要试图将此目录拷贝到其他服务器上运行,会造成不可预料的结果.

数据库依赖

你需要将 数据表结构和数据导入到MySQL数据库中

修改配置文件

修改 中相关配置信息, 具体配置描述可参考注释

启动服务

添加Nginx配置

重启nginx服务

修改hosts

若域名未解析,可修改hosts进行临时解析

安装完成

打开浏览器,访问

初始账号:

!!!登录后请尽快修改密码

使用

系统使用流程图

使用截图

帮助

遇到问题请提 issue:https://gitee.com/dreamans/syncd/issues

LICENSE

本项目采用 MIT 开源授权许可证,完整的授权说明已放置在 LICENSE 文件中

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190123B12NAZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券