カピストラーノを使用してRuby on Railsアプリケーションをデプロイしたい、次のようなシナリオがあります。
- Web アプリケーションはシン クラスタ上にあり、設定ファイルは /etc/thin に保存されています。また、init スクリプトは /etc/init.d/thin にあるため、サーバーの再起動が必要になるたびに自動的に開始されます。
- また、nginx も同じ方法で実行されます (init スクリプト デーモンとして)
- 誰かが私のウェブサーバーをハッキングした場合に備えて、あまりにも恐ろしいことをさせたくないので、ウェブユーザーは sudo を許可されていません。
- Thin と nginx の両方が Web ユーザーとして実行され、そのようなセキュリティが適用されます
デプロイを行う必要がある場合は、/home/webuser/railsapps/helloworld にファイルをインストールする必要があります。その後、cap スクリプトでシンを再起動する必要があります。すべてのファイルを webuser が所有するようにしたいので、cap スクリプトのプライマリ ユーザーは webuser として実行されます。webuserがsudoできないため、シンデーモンを再起動したいときに問題が発生します。
ファイル展開用の webuser と、デーモンを再起動するための特別な sudoer という 2 つの個別のセッションを呼び出すことが可能かどうかを考えています。誰かがこれに関するサンプルスクリプトを教えてもらえますか?