capistrano的原型用户设置为在Linux上的tomcat部署

我对CD和DevOps主题相对比较陌生,我试图用capistrano来设置自动部署,这在我的本地特别testing环境中效果很好。 不过,我想知道如何在未来的目标环境中设置用户。

例如,Ubuntu Tomcat安装过程设置了拥有tomcat进程的tomcat(6 | 7)用户。 不过,使用这个用户不可能使用sshlogin,而对于capistrano,你需要用户使用ssh访问来运行所有的命令。 人们通常如何解决这个问题? 当然,我想到了我自己的解决scheme,但是我有兴趣听听是否有最佳做法。

最后还会有另一方build立我的目标环境,但是我可以有一个发言权,所以我想知道我在这里理想的要求。

有很多方法可以做,但最重要的是设置sudo系统,因此启用SSH的部署用户(您需要设置)可以根据需要模拟tomcat或root进行部署。 实际的代码目录可以由tomcat拥有,或者可以由具有权限设置的部署用户拥有,以便tomcat可以使用这些文件。

desc "Restarts the tomcast service" task restart_tomcat do set :user, "deployuser" run "sudo service tomcat restart", :roles => :tomcat_servers end 

或者类似的。 如果sudo需要密码,capistrano足够聪明地提示你。

请检查包装的官方build议如何设置。 看看你select的分布如何pipe理它们的包中的问题。 可能会有一些HOWTO的分布或包,寻找那些。 但在阅读其他版本的解决scheme时要小心,经常会发生configuration和function从一个版本到另一个版本发生根本性变化(其他支持包也可能发生变化)。