データベース接続文字列やパスワードなどの認証情報は、バージョン管理システムに保存することはほとんどありません。
OpenShift でホストされているアプリの環境変数を指定する唯一の方法は、それらを Git リポジトリにコミットすることのようです。これについては OpenShift フォーラム で議論されていますが、この問題に対する有用な推奨回避策はありません。
認証情報をリポジトリにコミットせずにアプリに追加するために使用できる別の方法はありますか?
データベース接続文字列やパスワードなどの認証情報は、バージョン管理システムに保存することはほとんどありません。
OpenShift でホストされているアプリの環境変数を指定する唯一の方法は、それらを Git リポジトリにコミットすることのようです。これについては OpenShift フォーラム で議論されていますが、この問題に対する有用な推奨回避策はありません。
認証情報をリポジトリにコミットせずにアプリに追加するために使用できる別の方法はありますか?
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/
SSH でファイルを追加するだけでなく、リポジトリを変更する必要があるため、追加.openshift/action_hooks/pre_start_*
はあまりクールではありません。
nodejsの場合、編集nodejs/configuration/node.env
は数日間うまく機能しますが、ファイルが元に戻されたことが何度かありました。だから安定しない。
私ははるかに良い解決策を見つけました。
echo -n foobar > ~/.env/user_vars/MY_SECRET
これは完全に機能します。
(多分これはで行われるものrhc set-env ...
ですか?)
お役に立てれば!
もう 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_DIR
HTTP 経由でファイルに直接アクセスできる場合があります。.htaccess
ファイルでこれを防ぐことができるはずです。