部署搭建

通过 rsync + pm2 主动上传,部署服务

rsync 服务器

局部企业内网不容许间接 ssh 近程开发机,且没有开发机 root 权限,针对文件上传需要,所以在开发机上搭建 rsync 服务

配置文件

# 相干配置文件寄存地址,依据本人习惯mkdir -p $HOME/local/etc# rsync 配置文件touch $HOME/local/etc/rsyncd.conf# rsync 认证数据touch $HOME/lcoal/etc/rsyncd.secrets# rsync 定义 rsync 服务器信息, 依据须要配置,可疏忽touch $HOME/local/etc/rsyncd.motd

rsyncd.conf 配置

更多配置信息可查看 rsync 官网 或者应用
# pid,lock 文件寄存地位pid file = /home/fu/local/run/rsyncd.pidlock file = /home/fu/local/run/rsync.lock# rsyncd.motd 文件地位motd file = /home/fu/local/etc/rsyncd.motd# 日志寄存地位log file = /home/fu/local/var/log/rsync.log# 日志的配置transfer logging = yeslog format = %t %a %m %f %bsyslog facility = local3# 端口,默认是873port = 8873# 启动用户uid = workgid = workuse chroot = no# 拜访限度read only = falsehosts allow=*# 最大练连贯数量max connections = 5# 最大超时工夫timeout = 300# 模块,可配置多个[code]# 根门路path = /home/fu/devspace/code# rsync list 返回该模块list=yes# 疏忽errorignore errors# 认证用户auth users = codeuser# 认证凭证地址secrets file = /home/fu/local/etc/rsyncd.secrets# 正文comment = code direction# 同步时排除文件/文件夹exclude = log .git

rsyncd.secrets 配置

rsync 认证凭证

username:password 模式,每行一个用户,可配置多个用户

示例:

codeuser:password123codeuser2:password321

启动

rsync --daemon --config=/home/fu/local/etc/rsyncd.conf

pm2

装置 nodejs 以及 npm
npm install pm2 -g 装置 pm2

启动并监控以后文件夹

# 进入目录cd $HOME/devspace/code/process1# 用pm2 启动过程,并设置监控以后文件夹,当文件变动时,主动重启,疏忽 `log` 文件夹pm2 start ./run.sh --name precess  --watch --ignore-watch="log"

更多用法见 pm2 官网

客户端

# 穿插编译 Go 源码为可执行程勋GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -v -o process ./main.go# 上传到指定目录# 通过 --password-file 指定客户端上认证文件,格局间接为 passowrd 没有用户名局部# 此处rsyncd.secrets 文件内容为 `password123`# 如不应用该参数,须要手动输出明码# 服务器地址格局如下 [rsync://]username@host::moduleName[/path]# rsync 协定名可疏忽# host 为rsync 服务器地址# moduleName 为rsyncd 配置中的模块名# path 为模块配置相对路径rsync -avzP --password-file=$HOME/local/etc/rsyncd.secrets --port=8873 process codeuser@$DEVTECH::code/process1