Syncd开源自动化部署工具有什么用

11次阅读
没有评论

这篇文章将为大家详细讲解有关 Syncd 开源自动化部署工具有什么用,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

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

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

目前只支持类 Linux 系统.

特性

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

Web 界面访问,交互友好

灵活的角色权限配置

支持 Git 仓库

分支、tag 上线

部署 hook 支持

完善的上线工作流

邮件通知机制

原理 Syncd 开源自动化部署工具有什么用 Git Syncd 服务通过 git-ssh(或 password)方式从仓库中拉取指定 tag(分支)代码.

构建

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

在这一环节中,可运行单元测试 (例如 go test php phpunit, 下载依赖 (如 go: glide install php: 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 建立信任

配置方法请参考 秘钥配置 章节

安装

准备工作

Go

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

Git

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

Nginx

Web 服务依赖 Nginx

MySQL

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

Linux + Bash

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

秘钥配置

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

可使用 ssh-copy-id 命令添加,或手动拷贝. 拷贝后不要忘记进行测试连通性 ssh {生产机用户名}@{生产机地址}

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

Host *
 StrictHostKeyChecking no

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

~/.ssh 0700
~/.ssh/authorized_keys 0600

安装

二进制包安装

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

源码编译安装

curl https://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 中相关配置信息, 具体配置描述可参考注释

启动服务

cd syncd-deploy
➜ syncd-deploy ./bin/syncd -c ./etc/syncd.ini
 __
 _____ __ __ ____ _____ ____/ /
 / ___/ / / / / / __ \ / ___/ / __ /
 (__ ) / /_/ / / / / / / /__ / /_/ /
/____/ \__, / /_/ /_/ \___/ \__,_/
 /____/
Service: syncd
Version: 1.0.0
Config Loaded: ./etc/syncd.ini
Log: stdout
Database: 127.0.0.1
Mail Enable: 0
HTTP Service: :8868
Start Running...

添加 Nginx 配置

upstream syncdServer {
 server 127.0.0.1:8868 weight=1;
server {
 listen 80;
 server_name deploy.syncd.cc; #  此处替换成你的真实域名
 access_log logs/deploy.syncd.cc.log;
 location / {
 try_files $uri $uri/ /index.html;
 root /path/syncd-deploy/public; #  此处 /path 请替换成真实路径
 index index.html index.htm;
 }
 location ^~ /api/ {
 proxy_pass http://syncdServer;
 proxy_set_header X-Forwarded-Host $host:$server_port;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header Origin $host:$server_port;
 proxy_set_header Referer $host:$server_port;
 }
}

重启 nginx 服务

修改 hosts

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

sudo vim /etc/hosts
127.0.0.1 deploy.syncd.cc;

安装完成

打开浏览器,访问 http://deploy.syncd.cc

初始账号:

用户名: syncd 邮箱: syncd@syncd.cc 密码: syncd.cc !!! 登录后请尽快修改密码

使用

系统使用流程图 Syncd 开源自动化部署工具有什么用 使用截图

Syncd 开源自动化部署工具有什么用 

关于“Syncd 开源自动化部署工具有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。