系统环境描述
1. SVN服务器(172.16.100.1)
2. Jexus ASP.NET服务器(172.16.100.2)
post-commit脚本改写达到自动化持续部署Jexus项目
1. post-commit是SVN服务器在如TortoiseSVN工具commit时会执行的脚本
2. 利用上述1中SVN的特性对脚本post-commit脚本进行改写,如下:
export LC_CTYPE=en_US.UTF-8
/usr/bin/rm -rf /release/test #删除上一次export出来的Release版本
/opt/csvn/bin/svn export "http://172.16.100.1/svn/test" /release/test --force --username=auto_devops --password=auto_devops --no-auth-cache #将项目Release导出至本地的/Release目录下
/usr/bin/rsync -a --delete -e 'ssh -p2100' /release/test/ root@172.16.100.2:/data/www/test #同步上述中export出来的Release至远程服务器
/usr/bin/ssh root@172.16.100.2 -p2100 "/usr/jexus/jws restart test" #远程重启Jexus服务
3.运行post-commit是由用户csvn执行,在rsync和ssh时提示”host key verification failed. lost connection”
错误原因:post-commi脚本执行者是csvn用户;rsync和ssh远程用户是root
解决方案:svn服务器csvn用户生成的公钥传递给Jexus服务器root用户
(over)