postgres DB を使用する django アプリケーションがあります。
使用するdjangoアプリのpostgresユーザー名/パスワードの設定など、postgres DBを設定するシェフのレシピがあります。
このユーザー名/パスワードは、DATABASES settings.py 値で使用されます。
現時点では、postgres の詳細を と の両方に含める必要がありattributes.rb
ますsettings.py
。それらを 1 か所にまとめるにはどうすればよいですか?
私が現在検討しているオプション:
シェフ
settings.py
のテンプレートによって生成された (またはその一部)。そうすれば、詳細はシェフのレシピにあるだけで済みます。これの欠点は、chef 経由でデプロイしない限り、django アプリが不完全であることです。(ローカル開発でさえ vagrant+chef で行われるため、これはそれほど問題ではないかもしれません)。settings.py
いくつかの値をチェックしてロードする既知のファイルがファイルシステムにある。このファイルはchefによって生成されます。これは、最初のソリューションよりも少しだけ優れています。また、ファイルを読み込んで解析するには、settings.py にいくつかのボイラープレート コードが必要です。詳細を入力し
settings.py
て、chef に (何らかの方法で) 抽出させます。このアプローチは、chef レシピの順序を混乱させるため、問題があります (django アプリをチェックアウトし、値を抽出し、値を使用して postgres をセットアップしてから、django を起動する必要があります)。それ自体はそれほど悪くないかもしれませんが、本当の問題は、パスワードがソース管理されたファイルではなく、シェフのデータバッグのようなものにあるシステムに移動したい場合です。
私はかなりグーグルで検索しましたが、レイアウトに関するさまざまな議論と、settings.py
djangoとchefの使用方法に関する一般的な話以外に、良い解決策を見つけることができません. きっと他の誰かがchefを使ってpostgresでdjangoアプリを展開し、これに遭遇したことがありますか?