別のユーザーのホームにあるデフォルト ユーザー (Ubuntu) を使用して、Capistrano を使用して AWS-EC2 インスタンスに Rails アプリをデプロイしようとしていますが、「アクセス許可が拒否されました」というエラーが表示されました。これは私のコードです:
server "9.9.9.9", :web, :app, :db, primary: true
set :application, "some_app"
set :user, "ubuntu"
set :keep_releases, 3
set :location, "9.9.9.9"
ssh_options[:keys] = ["~/Keys/serverkey.pem"]
ssh_options[:forward_agent] = true
default_run_options[:pty] = true
set :use_sudo, false
task :hello do
run "echo 'Hello World' > /home/other_user/i_was_here.txt"
end
そして、これは出力です:
$ cap hello
* 2013-03-22 14:11:29 executing `hello'
* executing "echo 'Hello World' > /home/other_user/i_was_here.txt"
servers: ["9.9.9.9"]
[9.9.9.9] executing command
** [out :: 9.9.9.9] sh: cannot create /home/other_user/i_was_here.txt: Permission denied
command finished in 798ms
failed: "sh -c 'echo '\\''Hello World'\\'' > /home/other_user/i_was_here.txt'" on 9.9.9.9
何が間違っている可能性がありますか?目的は別のユーザーのためにRailsアプリをデプロイすることなので、いくつか疑問があります:
- Rails アプリを AWS-EC2 インスタンスに他のユーザーと直接デプロイする方法はありますか?
- #1 の答えが「いいえ」の場合、Rails アプリをデフォルト ユーザーの Ubuntu で他のユーザーにデプロイする正しい方法は何ですか? (将来、他のユーザーがアプリにアクセスしようとしたときに権限に問題が発生しないようにするため)
サーバーでは、各ユーザーのストレージと帯域幅を取得したいため、多くのユーザーが管理されています。そのため、この方法でそれを行い、今日まで Capistrano から始めています。
前もって感謝します。