如何从两个Openshift应用程序访问MongoDB数据库?

时间:2015-02-18 20:48:31

标签: mongodb openshift

我希望能够从2个Openshift应用程序访问我的MongoDB数据库 - 一个应用程序是通过浏览器的交互式数据库维护应用程序,另一个是通过Openshift应用程序在移动设备上运行的主要Web应用程序。正如我在Openshift中看到的那样,MongoDB在特定应用程序的文件夹空间中设置,而不是独立于该空间。

实现对数据库的多个应用程序访问的方法是什么?

这不是理想的但是我唯一的选择是将两个Openshift应用程序的功能合并为一个?那种味道就像一盘意大利面。

2 个答案:

答案 0 :(得分:3)

2018更新:这适用于Openshift 2.版本3非常不同,但是适用于linux和扩展的一般规则,细节已经过时。

虽然@MartinB回答是及时和正确的,但它只是一个链接,所以让我把这些要点放在这里。

假设已经完成了设置非共享数据库,您需要找到它的主机和端口。您可ssh到您的应用(带有数据库的应用)或使用rhc

rhc ssh -a appwithdb
env | grep MONGODB 

env带来所有环境变量,grep过滤它们以仅显示与Mongo相关的变量。你应该看到类似的东西:

OPENSHIFT_MONGODB_DB_HOST=xxxxx-yyyyy.apps.osecloud.com
OPENSHIFT_MONGODB_DB_PORT=zzzzz

xxxxx is the ID of the gear that Mongo sits on
yyyyy is your domain/namespace
zzzzz is MongoDB port

现在,您可以使用它们在Openshift环境中的任何位置创建与DB的连接。另一个应用程序必须使用xxxxx-yyyyy:zzzzz URL。您可以将它们存储在自定义变量中,以便于维护。

$ rhc env-set \
MYOWN_DB_HOST=xxxxx-yyyyy \
MYOWN_DB_PORT=zzzzz \
MYOWN_DB_PASSWORD=****** \
MYOWN_DB_USERNAME=admin..... \
MYOWN_DB_NAME=dbname...

然后使用环境变量而不是标准变量。请记住,当数据库移开时,它们不会自动更新。

答案 1 :(得分:2)

请阅读开放式博客中的以下文章:https://blog.openshift.com/sharing-database-across-applications/