目录
方案1,(国内用户无法成功, 因为无法拉取 go.lang.org)
简介:
Syncd是一款开源的代码部署工具,它具有简单、高效、易用等特点,可以提高团队的工作效率。
环境需求
操作系统
Linux / macOS + Bash. 需要注意的是Syncd不支持Win系统。
Go 编译环境
Syncd依赖 Go1.11+
编译环境,可前往官方网站 或 国内镜像 下载安装。
操作可以参考
https://blog.csdn.net/qq_21047625/article/details/89053569
MySQL
MySQL 5.6+
安装参考: https://mp.csdn.net/postedit/89053070
Git
升级操作系统Git到最新版本。
参考官方文档: https://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git
原理:
Syncd通过 git-ssh
方式创建仓库本地副本,通过运行项目构建脚本来生成可发布的代码包,使用 scp
串行/并行地向生产服务器分发并解包部署。
Syncd与生产服务器通过ssh交互,因此Syncd运行用户的 ssh-key 必须加入到目标主机的用户ssh-key信任列表中。
安装准备
新建对应的用户和用户组
[syncd@VM_121_116_centos ~]$ groupadd syncd
[syncd@VM_121_116_centos ~]$ useradd -g syncd syncd
[syncd@VM_121_116_centos ~]$ passwd syncd
新建目录
[syncd@VM_121_116_centos ~]$ mkdir -p /user/local/syncd
开始安装
国内用户无法访问go.lang.org ,采用方案2
方案1,(国内用户无法成功, 因为无法拉取 go.lang.org)
到新建的目录下执行命令
[syncd@VM_121_116_centos ~]$ cd /usr/local/syncd/
[syncd@VM_121_116_centos syncd]$ curl https://syncd.cc/install.sh | bash
错误
执行过程中如果报以下错误, 是因为服务器无法访问 go.lang.org , 请采用方案2
build command-line-arguments: cannot load golang.org/x/sys/unix: unrecognized import path "golang.org/x/sys" (https fetch: Get https://golang.org/x/sys?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
make: *** [build] Error 1
cp: cannot stat ‘/home/syncd/.syncd-repo/output’: No such file or directory
方案2(修稿 mod 替换 go.lang.org 依赖)
修改刚刚 install.sh
先用wget下载刚刚用的 sh
[syncd@VM_121_116_centos syncd]$ cd /usr/local/syncd/
[syncd@VM_121_116_centos syncd]$ wget https://syncd.cc/install.sh
修改 install.sh
[syncd@VM_121_116_centos syncd]$ vim install.sh
代码里面加上到指定位置.
##替换依赖解决翻墙
echo "replace (" >> go.mod
echo " golang.org/x/crypto => github.com/golang/crypto latest" >> go.mod
echo " golang.org/x/net => github.com/golang/net latest" >> go.mod
echo " golang.org/x/sys => github.com/golang/sys latest" >> go.mod
echo " cloud.google.com/go => github.com/googleapis/google-cloud-go latest" >> go.mod
echo ")" >> go.mod
注意, 版本更新后如果还有其他的包无法下载, 可以依据上面的方式替换成 github的源
之后执行刚刚修改的脚本
[syncd@VM_121_116_centos syncd]$ chmod 755 install.sh
[syncd@VM_121_116_centos syncd]$ ./install.sh
目录下面出现 syncd-deploy 文件夹表示成功
新建mysql的库和用户
登录mysql
[root@VM_121_116_centos ~]# mysql -u root -p
新建数据库和用户
注意: 尽量不要使用utf8 编码, 要使用的话, 请使用 utf8mb4
create schema syncd default character set utf8mb4;
use mysql
CREATE USER syncd IDENTIFIED BY 'QQ123qaz!';
GRANT ALL PRIVILEGES ON syncd.* TO syncd@'%';
flush privileges;
导入数据库
进入 刚刚建的用户
[root@VM_121_116_centos ~]# mysql -u syncd -p
选择 syncd 数据库,执行 syncd-deploy/resource/sql/ 脚本, 脚本文件名依据版本不同可自行查看
执行脚本要注意, 下面截图中所有表的字符集, 记得改成和mysql的库一致
改完之后导入即可
mysql> use syncd
Database changed
mysql> source /usr/local/syncd/syncd-deploy/resource/sql/syncd_v2.0.0.sql
ERROR 1007 (HY000): Can't create database 'syncd'; database exists
这里的错误是因为我们自己手工创建了 syncd 数据库, 无需关心
修改 syncd 的数据库信息,
[syncd@VM_121_116_centos syncd]$ vim syncd-deploy/etc/syncd.ini
运行 syncd
[syncd@VM_121_116_centos syncd]$ cd syncd-deploy/
[syncd@VM_121_116_centos syncd-deploy]$ nohup ./bin/syncd
访问
默认用户密码
syncd/111111