13

データベース接続文字列やパスワードなどの認証情報は、バージョン管理システムに保存することはほとんどありません。

OpenShift でホストされているアプリの環境変数を指定する唯一の方法は、それらを Git リポジトリにコミットすることのようですこれについては OpenShift フォーラム で議論されていますが、この問題に対する有用な推奨回避策はありません。

認証情報をリポジトリにコミットせずにアプリに追加するために使用できる別の方法はありますか?

4

4 に答える 4

18

Openshift は、次のような rhc コマンドライン ツールを使用した環境変数の設定をサポートするようになりました。

rhc set-env HEROKU_POSTGRESQL_DB_URL='jdbc:postgresql://myurl' -a myapp

他のすべての回答よりも簡単だと思います...

参照: https://blog.openshift.com/taking-advantage-of-environment-variables-in-openshift-php-apps/

于 2013-11-18T22:37:49.980 に答える
5

SSH でファイルを追加するだけでなく、リポジトリを変更する必要があるため、追加.openshift/action_hooks/pre_start_*はあまりクールではありません。

nodejsの場合、編集nodejs/configuration/node.envは数日間うまく機能しますが、ファイルが元に戻されたことが何度かありました。だから安定しない。

私ははるかに良い解決策を見つけました。

echo -n foobar > ~/.env/user_vars/MY_SECRET

これは完全に機能します。

(多分これはで行われるものrhc set-env ...ですか?)

お役に立てれば!

于 2013-09-20T13:44:10.837 に答える
2

もう 1 つのオプションはopenshift、ローカル マシンにプロジェクトのブランチを作成することです。openshiftブランチにのみ存在する個人情報用のフォルダー/ファイルを作成できます。pre_startのようなフックでファイルをソースする必要がありますsource ${OPENSHIFT_REPO_DIR}/.private

次に、ブランチで開発し、masterブランチにマージして、ブランチから OpenShift マスター ブランチにopenshiftプッシュします。このサウンドは最初は複雑ですが、特に共有しopenshiftている場合は、ワークフローが非常に簡単になります。origin

これは、オリジンが GitHub にある場合のワークフローです。

github/master <--> local/master --> local/openshift --> openshift/master

唯一の双方向リンクは github とローカル マスターの間であることに注意してください。そのため、資格情報を「エスケープ」する理由はありません。

このアプローチには、OpenShift 固有の変更をブランチに限定して保持できるという追加の利点もありますopenshift(Gemfile、ENV 変数、パスなど)。

セキュリティに関しては、OpenShift サーバーでは、リポジトリは と同じセキュリティを持つ必要がある$OPENSHIFT_DATA_DIRため、実際には自分自身を公開することはありません。

警告: フレームワークによっては、$OPENSHIFT_REPO_DIRHTTP 経由でファイルに直接アクセスできる場合があります。.htaccessファイルでこれを防ぐことができるはずです。

于 2012-11-27T21:55:22.257 に答える