QA@IT

Capistrano3 でmkdirするところでPermission Deniedになってしまいます…

6596 PV

Capistrano3で、mkdirするところで、Permission Deniedになってしまい、毎回こけてしまいます…

Capistranoバージョン3では、set :use_sudoや、default_run_optionsは使えなくなってます。
何やらsudoでpasswordlessでやるとよいなどと書いてあったらので、visudoで
username ALL=NOPASSWD:ALLと設定しましたが、(あえて全コマンドでやっちゃってます)
これでやっても、
mkdir: cannot create directory `/usr/share/nginx/www/appname/releases/20131216141721': Permission deniedとなってしまいます。

mkdirする際などの、capistranoでsudoが必要な場合の設定をみなさんはどのようにされているのでしょうか?
アドバイス頂けますと幸いです。
どうぞよろしくお願いします。

<環境>
Capistrano:3
Rails:4
Ruby:2

回答

これが一番良いやり方なのかはわかりませんが、StackOverflowにて以下のような回答がありますね。
明示的にsudoを実行しているようです。
向こうではAcceptされていませんがそれはパスワード付sudoが実現できないという点のようなので、パスワード無しsudoが設定済みであれば参考になるかもしれません。

http://stackoverflow.com/questions/19948809/capistrano-3-sudo-task


ドキュメントではパスワード無しのsudoに対するリスクも訴えていますので、もう一方のsgidを利用するやり方を採用する手もあるでしょう。

http://www.capistranorb.com/documentation/getting-started/authentication-and-authorisation/

編集 履歴 (2)
ウォッチ

この質問への回答やコメントをメールでお知らせします。