4

かなりばかげた質問で申し訳ありませんが、人々はCapistranoファイル(Capfile、deploy.rb、multisite> config / deploy / *)をプライベートscmリポジトリにコミットしますか?

人々が従うベストプラクティスまたは基準はありますか?あなたは何をフォローしていますか?

ありがとうございました。

4

1 に答える 1

4

ベスト プラクティスは「はい」です。 deploy.rb をコミットしますが、パスワード、api_keys、またはその他のプライベート データを含むファイルはコミットしないでください。代わりに、これらのファイルをテンプレートにします。たとえば、database.ymlデータベース名、ポート、ユーザー名を含むファイルをコミットします。 、しかし、次のようなもの

password: <db_password>

テンプレートファイルを作成します。

明らかに、プロジェクトが GitHub のようなパブリック リポジトリにある場合は、それで問題ありません。しかし、あなたが言うように、SCM が非公開の場合は、他の保護されたリソースと同様に扱う必要があります。パスワードとキーは、「他の保護されたリソース」以上のものです。高度に保護する必要があります。

完全に自己構成するシステムの場合、さまざまなパスワードまたはキーを持つ慎重に制御されたローカル ファイル (おそらく YAML) を読み取る capistrano (またはおそらく rake) タスクを作成し、コミットされたファイルがデプロイされたら、パスワードをテンプレートに書き込みます。

パスワードまたは構成ファイルの形式があまり変わらない場合は、cap:setup タスクを使用して手動でパスワードを追加し、それらを app/shared/config ディレクトリに残して、capistrano にソース ツリー内のシンボリック リンクを作成させることができます。展開。

展開に関しては、これは非常に特権のあるユーザーのみが実行する必要があるものです (特に本番環境では)。これにより、特定のサーバーへのアクセスを許可されたユーザーのみがパスワードやその他の機密データを表示できるようになります。

Ryan Bates は、このような戦略で優れた RailsCast を作成しました。これらのエピソードのいくつかをチェックしてください。RailsCast の多くは無料ではなくなりましたが、月額 9 ドルなので、それだけの価値があることに注意してください。

于 2012-11-15T22:18:02.507 に答える