1. sudo 报错的问题
正常使用fabric的sudo出现报错,错误如下:
sudo('ls',user='admin')
#执行过程:
yunpeng@yunpeng-taobao:fab deploy_tlog2_proxy_dev
[10.125.48.147] Executing task '_deploy_tlog2_proxy_dev'
[10.125.48.147] sudo: ls
[10.125.48.147] out: Sorry, user yunpeng.jiangyp is not allowed to execute '/bin/bash -l -c ls' as admin on v125048147.bja.
[10.125.48.147] out:
Fatal error: sudo() received nonzero return code 1 while executing!
Requested: ls
Executed: sudo -S -p 'sudo password:' -u "admin" /bin/bash -l -c "ls"
可以看到原因是在v125048147.bja.这台机器上执行sudo -S -p 'sudo password:' -u "admin" /bin/bash -l -c "ls"没有权限,查看了一下bash手册,-l表示login模式,如果去掉-l就不会报告权限错误,查看了一下sudo的API,发现还真有这个参数,改为下面这种方式问题解决
sudo('ls',user='admin', shell=False)
2. 通过fabric无法正常启动jvm
最开始是通过如下方式启动:
sh /home/admin/tlog-proxy/bin/startup.sh
发现没有任何错误信息但jvm 没有正常启动起来,后来想起可能是因为ssh screen退出导致的。改为下面这种方式问题解决:
sudo -u admin nohup /home/admin/tlog-proxy/bin/startup.sh >/dev/null