我是Capistrano的新手,在阅读文档后我可以部署所有应用文件和service unicorn reload
,但我认为我可以做得更好。
文档说创建没有密码的用户,但我尽量避免使用此选项。
现在我使用了两个用户,一个是带有SSH连接的root
(重新加载独角兽),但我读过这是一个不好的做法,另一个是rails
默认Digitalocean自动处理。
我通过SSH连接到服务器。
在Capistrano文件中,我有:
production.rb:
set :deploy_to, "/home/rails/www/digitalshelving"
role :web, %w{rails@xx.xxx.xxx.xx}
server "xx.xxx.xxx.xx", user: "rails", roles: %w{web}
和.rake文件(任务):
namespace :deploy_ds do
task :reload_unicorn do
on "root@xx.xxx.xxx.xx" do
execute :service, "unicorn reload"
end
end
task :upload_git do
run_locally do
# Git add + commit + push
end
end
end
before "deploy:starting", "deploy_ds:upload_git"
after "deploy:finished", "deploy_ds:reload_unicorn"
我认为我应该避免root
ssh
个关联,但是,我无法执行service unicorn reload
。
任何意见将不胜感激。
答案 0 :(得分:0)
感谢Tom Lord我成功地为用于部署的用户提供了在没有密码的情况下执行void *malloc(size_t size);
的能力。
Here。
对我而言,只有一个开发人员和Linux管理员的小型项目中的最佳解决方案,比创建没有密码的用户更好,因为它显示Capistrano docs。
现在我可以按照建议使用SSH停用root访问权限。
即使任何评论或更正都会更加准确和受欢迎,因为我缺乏Linux安全知识