rsync+pm2 上传&&部署服务
Posted 三月半
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rsync+pm2 上传&&部署服务相关的知识,希望对你有一定的参考价值。
部署搭建
通过 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.pid
lock 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 = yes
log format = %t %a %m %f %b
syslog facility = local3
# 端口,默认是873
port = 8873
# 启动用户
uid = work
gid = work
use chroot = no
# 访问限制
read only = false
hosts allow=*
# 最大练连接数量
max connections = 5
# 最大超时时间
timeout = 300
# 模块,可配置多个
[code]
# 根路径
path = /home/fu/devspace/code
# rsync list 返回该模块
list=yes
# 忽略error
ignore errors
# 认证用户
auth users = codeuser
# 认证凭证地址
secrets file = /home/fu/local/etc/rsyncd.secrets
# 注释
comment = code direction
# 同步时排除文件/文件夹
exclude = log .git
rsyncd.secrets
配置
rsync
认证凭证
以 username:password
形式,每行一个用户,可配置多个用户
示例:
codeuser:password123
codeuser2: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
以上是关于rsync+pm2 上传&&部署服务的主要内容,如果未能解决你的问题,请参考以下文章