部署构建通过rsync+pm2自动上传,部分部署服务rsync服务器的企业内网不允许直接ssh远程开发机,在开发机上没有root权限。对于文件上传需求,rsync服务配置文件在开发机上搭建#相关配置文件存放地址,根据自己的习惯mkdir-p$HOME/local/etc#rsync配置文件touch$HOME/local/etc/rsyncd.confconf#rsync认证数据touch$HOME/lcoal/etc/rsyncd.secrets#rsync定义rsyncserver信息,按需配置,可以忽略touch$HOME/local/etc/rsyncd.motdrsyncd.conf更多配置信息,可以查看rsync官网或者使用#pid,lock文件存放位置pidfile=/home/fu/local/run/rsyncd.pidlockfile=/home/fu/local/run/rsync.lock#rsyncd.motd文件位置motd文件=/home/fu/local/etc/rsyncd.motd#日志存放位置日志文件=/home/fu/local/var/log/rsync.log#日志配置传输logging=yeslogformat=%t%a%m%f%bsyslogfacility=local3#port,默认为873port=8873#startuseruid=workgid=workusechroot=no#访问限制只读=falsehostsallow=*#最大训练连接数maxconnections=5#最大timeouttimeout=300#模块可以配置多个[code]#Rootpathpath=/home/fu/devspace/code#rsynclistreturnsthismodulelist=yes#ignoreerrorignoreerrors#authenticationuserauthusers=codeuser#authenticationcredentials地址机密文件=/home/fu/local/etc/rsyncd.secrets#注意comment=codedirection#同步时排除文件/文件夹exclude=log.gitrsyncd.secrets配置rsync认证凭证,形式为username:password,每行一个用户,可配置多个用户例子:codeuser:password123codeuser2:password321启动rsync--daemon--config=/home/fu/local/etc/rsyncd.confpm2installnodejsandnpmnpminstallpm2-ginstallpm2启动监控当前文件夹#进入目录cd$HOME/devspace/code/process1#usepm2启动进程,并设置监控当前文件夹。当文件更改时,它会自动重启并忽略`log`文件夹。pm2start./run.sh--nameprocess--watch--ignore-watch="log"更多用法见pm2官网客户端#交叉编译Go源码成可执行程序程寻GOOS=linuxGOARCH=amd64gobuild-ldflags="-w-s"-v-oprocess./main.go#上传到指定目录#pass--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进程代码user@$DEVTECH::code/process1
