我对 CD 和 DevOps 主题还比较陌生,我正在尝试使用 capistrano 设置自动部署,它在我的本地附加测试环境中运行良好。但是我想知道理想情况下如何设置未来目标环境中的用户。
例如,Ubuntu Tomcat 安装程序设置了一个拥有 tomcat 进程的 tomcat(6|7) 用户。但是,无法使用此用户通过 ssh 进入框,而对于 capistrano,您需要一个具有 ssh 访问权限的用户来运行所有命令。人们通常如何解决这个问题?当然,我想到了自己的解决方案,但我有兴趣听听是否有最佳实践。
最终会有另一方设置我的目标环境,但我可以对此发表意见,所以我想知道我在这里理想中想要什么。
答案1
有多种方法可以做到这一点,但最好的方法是设置须藤系统,以便启用 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 会很智能地提示您输入密码。
答案2
查看软件包的官方建议,了解如何设置。查看您选择的发行版如何管理其软件包中的问题。可能有一些针对发行版或软件包的 HOWTO,请查找这些。但在阅读其他版本如何解决这个问题时要小心,配置和功能从一个版本到另一个版本经常会发生根本性变化(其他支持软件包也可能发生了变化)。