自动化部署工具Syncd介绍

Syncd是一款开源的代码部署工具,它具有简单、高效、易用等特点,可以提高团队的工作效率。官网地址:https://syncd.cc/

特性

  • Go语言开发,编译简单、运行高效
  • Web界面访问,交互友好
  • 权限模型灵活自由
  • 支持自定义构建
  • 支持Git仓库
  • 支持分支、Tag上线
  • 部署Hook支持,可扩展性强
  • 完善的上线工作流
  • 邮件通知机制

部署流程

这是我自己通过测试发现的syncd部署上线的流程,看完这个流程再结合自己的需求是否使用该工具

  • 从git仓库clone代码到syncd所属服务器上
  • 通过tar命令将项目压缩成一个文件
  • 通过scp命令把压缩文件拷贝到配置好的服务器上
  • 在目标服务器上解压文件
  • 完成

安装syncd

环境需求

操作系统
Linux / macOS + Bash. 需要注意的是Syncd不支持Win系统。
Go 编译环境
Syncd依赖 Go1.11+ 编译环境,可前往官方网站国内镜像 下载安装。
MySQL
MySQL 5.6+
Git
升级操作系统Git到最新版本。

安装

通过命令即可快速安装,如果出现报错,检查一下环境是否满足需求

 curl https://syncd.cc/install.sh | bash

导入数据库

数据库文件位于syncd安装目录下的resource/sql文件夹中,通过数据库导入命令,将数据导入数据库中。

配置文件

配置文件为syncd-deploy/etc/syncd.ini,其中的配置简单易懂,主要修改数据库相关配置即可

启动

进入到syncd-deploy目录下的bin文件夹中,执行./syncd即可运行,在浏览器中打开http://IP:8878即可进入到登录页。登录账号:syncd 密码:111111

使用

项目空间

项目空间是项目的基本组织单元,是进行项目和多用户隔离和访问控制的主要边界。
项目 -> 空间管理 -> 新增项目空间

image.png

项目管理

项目 -> 项目管理 -> [切换项目空间] -> 新增项目

image.png

成员管理

管理成员所属项目
项目 -> 成员管理 -> [切换项目空间] -> 添加新成员

image.png

集群管理

管理服务器集群
服务器 -> 集群管理 -> 新增集群

image.png

服务器管理

管理集群下的服务器,部署服务器(Syncd服务所在的服务器)与生产服务器(代码部署目标机)之间通过ssh协议通信,所以需要将部署服务器的公钥 (一般在这里: $HOME/.ssh/id_rsa.pub)加入到生产机的信任列表中(一般在这里 $HOME/.ssh/authorized_keys

image.png

构建配置

配置支持的变量只有两个

  • ${env_workspace}
    代码仓库本地副本目录
  • ${env_pack_file}
    打包文件绝对地址,构建完成后将需要部署到线上的代码打包到此文件中,必须使用 tar -zcf 命令进行打包。
    部署模块会将此压缩包分发到目标主机并解压缩到指定目录,请按照要求打包,否则会部署失败。
    配置示例
cd ${env_workspace}
tar -zcvf ${env_pack_file} *

新建上线申请单

  • 选择项目


    image.png
  • 填写上线单


    image.png

上线

image.png

image.png

总结

Syncd看上去功能比较简单,但是针对小项目的集群发布比较容易。
参考:https://syncd.cc/docs/#/

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。